Guice + Hibernate = Probleme?

Jay_030

Aktives Mitglied
Es ist mal wieder soweit: Eine Guice Frage. :oops:

Folgender Ausgangspunkt: Ich habe mein Domänenmodell zuerst mit Interfaces modelliert, danach die jeweilige Implementierung dafür gemacht. Das ganze ist für Guice über ein DomainModule zugänglich. Jetzt wollte ich Hibernate-Annotations in die Implementierungen klatschen, um die Objekte persistieren zu können. Und dabei, der geübte Guice-Nutzer ahnt es, quoll mein Log mit Fehlermeldungen über. ;)

Da ich in den Implementierungen natürlich auch immer das Interface eines referenzierten Typs angegeben habe, kann Hibernate das natürlich nicht auf die gebundene Klasse aus Guice mappen.

Ich habe z.B. ein Interface SpielerEigenschaft, die als Attribut einen Spieler (auch ein Interface) und ein paar andere Sachen hat. Die Interfaces bindet Guice über das DomainModule an die richtigen Klassen und injected auch alles richtig. Aber z.B. die Persistence Annotation @OneToMany erwartet ja bei mappedBy und targetEntity eine konkrete Klasse bzw. ein Feld. Jetzt könnte ich in die Implementierungen der Domain-Interfaces natürlich durchaus die konkreten Klassen reinschreiben. Aber da fehlt mir irgendwie das DI Prinzip und ich verliere die lose Kopplung.

Helft mir mal bitte auf die Sprünge. :)

Ich könnte ja die AOP Features von Guice nutzen und vielleicht die Typen und Annotations für Hibernate beim Starten manipulieren, aber das wirkt wie mit Kanonen auf Spatzen. ^^
 
Zuletzt bearbeitet:
G

Gelöschtes Mitglied 5909

Gast
Wieso gibst du in deinen Hibernate-DAOs nicht einfach die Interfaces zurück?

Das ist eine Stelle wo DI wenig sinn macht und auch kaum Funktionieren wird, denn Hibernate muss die Entities mit new bzw Reflection erzeugen. Es weiß nix von deinem Guice Container, von daher kannst du da Konfigurieren was du willst.

Noch was: wenn idhc dich richtig verstanden habe, hast du die Hibernate Annotationen an die Interfaces geschrieben?

Das ist totaler unfug

Ein kleines Beispiel:

Interface Person

Klasse PersonEntity (mit Hibernate/JPA Annotations)


Interface PersonDao

Methode findAll() : Person

Und Klasse HibernateDao implementiert das Interface PersonDao,
nutzt intern das Entity und returned es (in form des interfaces)
 
Zuletzt bearbeitet von einem Moderator:

Jay_030

Aktives Mitglied
Wieso gibst du in deinen Hibernate-DAOs nicht einfach die Interfaces zurück?
Um die DAOs geht's nicht. :)

Noch was: wenn idhc dich richtig verstanden habe, hast du die Hibernate Annotationen an die Interfaces geschrieben?

Das ist totaler unfug
Habe ich auch nicht gemacht.

Ich unterfütter mein Problem mal mit etwas Code.
Java:
public interface SpielerEigenschaft {

    Spieler getSpieler();
    void setSpieler(Spieler spieler);

    ...
}

public interface Spieler {

    Set<SpielerEigenschaft> getEigenschaften();
    void setEigenschaften(Set<SpielerEigenschaft> eigenschaften);

    ...
}

Das sind Interfaces für das Domänenmodell. Beim Spieler implementiere ich das Set, welches mit SpielerEigenschaft typisiert ist, natürlich nicht mit der konkreten Klasse DefaultSpielerEigenschaft sondern mit SpielerEigenschaft:

Java:
public class DefaultSpieler implements Spieler {

    private Set<SpielerEigenschaft> eigenschaften = new HashSet<SpielerEigenschaft>();

    ...
}

So, jetzt zu Hibernate. Wenn ich das eigenschaften-Set mit OneToMany und mappedBy="spieler" mappen möchte, geht das natürlich nicht, da mappedBy ein konkretes Feld erwartet. Dies könnte ich erreichen, indem ich DefaultSpielerEigenschaft.class als targetEntity angebe. Jedoch füge ich dadurch Abhängigkeiten ein, die dafür sorgen, dass ich gleich hätte
Java:
private Set<DefaultSpielerEigenschaft> eigenschaften = new HashSet<DefaultSpielerEigenschaft>();
formulieren können.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Compiler-Fehler Google Guice Module zur Laufzeit zusammenstellen und binden Allgemeine Java-Themen 4
L Guice Dependency Injection Allgemeine Java-Themen 0
L Google Guice Field Injection returns null Allgemeine Java-Themen 2
I WebSockets mit Jersey und Guice Allgemeine Java-Themen 0
T GUICE- Dependency Injection- WANN nutze ich Providers? Allgemeine Java-Themen 2
M Google Guice (Assisted Injects) - Buggy oder mach ich's falsch? Allgemeine Java-Themen 5
F Google Guice + Generics + Vererbung Allgemeine Java-Themen 5
N Guice - Ohne injector.getInstance Allgemeine Java-Themen 2
F rekursiver Aufruf (Sudoku und Guice) Allgemeine Java-Themen 19
Landei Guice - Injection von "zwischendurch" erzeugten Objekten Allgemeine Java-Themen 4
F DI @SesionScoped Guice Allgemeine Java-Themen 4
Jay_030 Guice: Injector übergeben? Allgemeine Java-Themen 3
Jay_030 Guice: Frage im Umgang mit Unit-Tests Allgemeine Java-Themen 4
DamienX Google Guice AOP + Logging Allgemeine Java-Themen 3
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
S org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: right near Allgemeine Java-Themen 6
P Hibernate Proxy Allgemeine Java-Themen 1
C Hibernate EJB JTA Allgemeine Java-Themen 4
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
Shoox Hibernate / JAXB für Schnittstellen Allgemeine Java-Themen 4
G Hibernate search (Lucene) - Index wird nicht rechtzeitig erzeugt? Allgemeine Java-Themen 2
H Hibernate: @OneToOne Beziehung Allgemeine Java-Themen 4
N Hibernate und Fehlermeldung Allgemeine Java-Themen 18
neurox Tutorial: Hibernate mit MySQL (erste Schritte) Allgemeine Java-Themen 34
P Hibernate oder Java Persistence API? Allgemeine Java-Themen 3
A Spring und Hibernate Allgemeine Java-Themen 2
MQue log4j mit hibernate Allgemeine Java-Themen 3
F Hibernate speichern - Null Allgemeine Java-Themen 5
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
M Hibernate frage zur Verbindung Allgemeine Java-Themen 3
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
G Obfuscator und Hibernate! Allgemeine Java-Themen 5
W JBoss,Axis2,Hibernate/JPA,Oracle - EntityManager Problem Allgemeine Java-Themen 4
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
J Hibernate & Java Allgemeine Java-Themen 4
A Hibernate und Swing Allgemeine Java-Themen 2
G Hibernate speichert Daten nur während Session in HSQL-DB Allgemeine Java-Themen 10
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
M tomcat probleme Allgemeine Java-Themen 1
N Division macht Probleme Allgemeine Java-Themen 14
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
MarvinsDepression Probleme mit relativem Dateipfad Allgemeine Java-Themen 1
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
nibe1501 GUI Probleme Allgemeine Java-Themen 16
C Probleme mit dem WindowBuilder Allgemeine Java-Themen 3
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
K VisualVM Profiling Remote Probleme Allgemeine Java-Themen 1
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
D Regex Probleme Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
Dann07 Probleme mit OpenAL Allgemeine Java-Themen 0
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
V Compiler-Fehler Online Compiler Probleme Allgemeine Java-Themen 4
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
M Probleme mit BigDecimal Allgemeine Java-Themen 1
T Probleme mit NumberFormat Allgemeine Java-Themen 5
J Probleme exe-Start mit Task Scheduler Allgemeine Java-Themen 1
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
F Variablen Palindromzahl (Probleme mit Methode) Allgemeine Java-Themen 9
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
J Erste Schritte Probleme mit der Hauptklasse Allgemeine Java-Themen 14
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
J MinMax VierGewinnt Probleme Allgemeine Java-Themen 22
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
R Snake Probleme Allgemeine Java-Themen 2
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
G Ant Probleme bei einer Installation die Apache ant+ivy verwendet Allgemeine Java-Themen 14
E TableView Probleme Allgemeine Java-Themen 7
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
S Kaffemaschine Programmierung Probleme Allgemeine Java-Themen 2
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
S Probleme mit unterschiedlichen Java-Versionen (Mac OS X 10.11) Allgemeine Java-Themen 0
S Event Handling keyPressed()-Probleme Allgemeine Java-Themen 2
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
H Probleme mit DAY_OF_WEEK Allgemeine Java-Themen 4
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
D Performance-Probleme mit Joda-Time Allgemeine Java-Themen 3
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
RalleYTN Probleme mit Encrypting Allgemeine Java-Themen 10
M Probleme mit Schriftarten PDFBox Allgemeine Java-Themen 3
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
G Probleme mit BufferedWriter und URL Allgemeine Java-Themen 4
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17

Ähnliche Java Themen

Neue Themen


Oben