Zum Inhalt springen

Hibernate Frage


Joe Kinley

Empfohlene Beiträge

Hi Leute,

ich frage mich ob ein Hibernate Pojo zwingend nur reine Datenhaltung sein darf, also nur Felder und Getter/Setter, oder darf es auch beliebige weitere Funktionen halten. Gemapped wird schliesslich ja nur in den Config XMLs.

Also darf es weitere Funktionen halten oder nicht? Und kann die Klasse auch Felder halten die nicht persistent sind?

Ich hoff da weiss einer bescheid. Denn in meinem Buch, und der Doku hab ich garnichts dazu gefunden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ja und ja. Du darfst natürlich weitere Methoden in Deinem POJO definieren. Und Du kannst auch transiente Felder definieren. Bei Hibernate3 gibst Du dazu einfach die Annotation @Transient an, bei Hibernate2 sollte es dafür in der hbm.xml eine entsprechende Möglichkeit geben.

Ich finde die Online-Doku auf hibernate.org - Hibernate ganz hilfreich.

Schöne Grüße,

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Jaraz,

da wage ich zu widersprechen. Man sollte es nicht tun, wenn man wirklich Anwendungslogik in diese Klassen packen will. Aber das Verhalten eines persistenten POJOs existiert schon. Und das kann z.B. eine Wertebereichsüberprüfung oder das simple überschreiben der toString()-Methode sein. Diese sollten und müssen natürlich im Hibernate POJO implementiert werden.

Business-Logik hat hier nichts verloren, das gehört in die Business-Schicht. :) Ich habe deshalb auch meinen Beitrag vor dem abschicken noch einmal überarbeitet, da ich statt "Methoden" Business-Logik geschrieben habe. Danke für den Hinweis.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Natürlich gibt es sinnvolle Methoden in Hibernate POJOs die nicht getter oder setter Methoden sind. Das Überschreiben von equals und hashCode ist in vielen Fällen sogar zwingend notwendig.

Wenn man aber anfängt mit @Transient getter Methoden auszuschließen, kommt man schnell in den Bereich der Vermischung.

Werteüberprüfungen gehören für mich z.B. nicht unbedingt in die Persistenz Klassen.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus nochmal,

das @Transient verwende ich persönlich eigentlich nur für die Eigenschaft serialVersionUID, die ich nicht in der Datenbank haben will, die bei Serializable Objekten (das sind meine Hibernate POJOs natürlich immer) aber guter Stil ist.

Du hast aber Recht, man sollte sich überlegen, ob man Werte wirklich als transient markieren will, oder ob evtl. das Objektmodell zu überdenken ist.

Schönes Wochenende,

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...
das @Transient verwende ich persönlich eigentlich nur für die Eigenschaft serialVersionUID, die ich nicht in der Datenbank haben will
serialVersionUID ist doch eh static und wird daher überhaupt nicht als Property herangezogen.

kennt Ihr gute deutsche Bücher zur Einarbeitung in Hibernate bzw. eine deutsche Version der Reference Documentation?
Das wohl beste und umfangreichste Buch: http://www.manning.com/bauer2/.

Was deutsche Dokus angeht: Da dürftest du immer Schwierigkeiten haben. Selbst wenn es irgendwo Übersetzungen gibt sind diese in der Regel nur für ältere Versionen wirklich zutreffend und komplett. Eigentlich wie überall in der IT: Englisch ist das Maß der Dinge!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was deutsche Dokus angeht: Da dürftest du immer Schwierigkeiten haben. Selbst wenn es irgendwo Übersetzungen gibt sind diese in der Regel nur für ältere Versionen wirklich zutreffend und komplett. Eigentlich wie überall in der IT: Englisch ist das Maß der Dinge!

Ich weiß, dauert leider länger, wenn man 329 Seiten auf englisch liest...

Danke für den Link. Sowas hab ich gesucht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...