Ich versuche kürzlich, Schnittstellen für einige meiner Hibernate Mapped Entities einzuführen und kann nicht herausfinden, wie man das Mapping konfiguriert.Hibernate Interface Mapping ohne Annotationsparameter "targetEntity"
Wenn ich die Schnittstelle ohne weitere Erklärungen verwendet, ich habe immer die folgende Ausnahme:
org.hibernate.MappingException: Could not determine type for: ...MyInterface
Dann fand ich heraus, dass alles funktioniert gut, wenn ich die targetEntity explizit definieren:
@OneToOne(targetEntity=InterfaceImpl.class)
private MyInterface myInterface;
Leider funktioniert diese Lösung in meinem Fall nicht: Ich kann targetEntity nicht durch Annotation definieren, da ich diese Klasse in eine allgemeine externe Bibliothek extrahieren möchte, die die endgültige Implementierung der Schnittstelle nicht enthält und auch nicht kennt.
Gibt es also eine alternative Möglichkeit zu deklarieren, welche Implementierung verwendet werden sollte, die ich außerhalb der extrahierten Bibliothek verwenden könnte?
Gute Idee, technisch. Leider brauche ich wirklich Schnittstellen. Abstrakte Superklassen werden den Trick nicht machen, da ich Multi-Vererbung benötigen würde, um sie meinen Bedürfnissen anzupassen. Der Benutzer (siehe Beispiel oben) sollte in der Lage sein, mehrere Schnittstellen zu implementieren. Zum Beispiel ist er sowohl Autor von BlogArticles als auch Autor von Kommentaren. Ich habe das oben nicht erwähnt. Es tut uns leid. – Pumuckline