# Konstruktoren und Hibernate



## eolith421 (10. Mai 2010)

Hallo!
Ich habe hier bereits ein teilweise fertiges Projekt welches über ein eschreckliche Persistenzschicht verfügt. Daher habe ich mir gedacht ich stelle diese auf hibernate um. Um es gleich zu sagen, ich bin ein absoluter Anfänger bei Hiberante. Mithilfe dieses Turorials First Hibernate example - tutorial habe ich einen ersten Einblick gewonnen und wollte nun eine kleinen Teil umstellen.

Ich habe eine fachliche Klasse Patient mit einem Konstruktor dem ich die ID (integer) übergebe. Mithilfe dieses Konstruktors wurde nun aus der DB die dazugehörigen Daten ausgelesen. Es sind alle getter und setter Methoden vorhanden wobei nur die getter Methoden public sind, da ich nur daten lese und nicht schreibe. Nun wollte ich versuchen diese Klasse an hibernate anzubinden. Mein Problem ist dabei, dass ich nicht einen leeren Default Konstruktor habe sondern eben diesen oben genannten. Hibernate aber soweit ich das bisher sehe einen leeren Konstruktor benötigt. Bei mir haben fast alle fachlichen Klassen die mit der DB interagieren keinen leeren Konstruktor. Wie kann ich nun das auf Hibernate umstellen ohne, bei allen fachlichen Klassen einen leeren Konstruktor einzuführen was definitiv nicht geht! Das einzige was mir einfallen würde, ist dass ich quasi auf der Persistenzschicht jedes fachliche Objekt mit einem leeren Konstruktor und einer set ID Methode neu erzeuge. Gibt es auch eine andere Möglichkeit?

Danke,
Florian


----------



## maki (10. Mai 2010)

> Ich habe eine fachliche Klasse Patient mit einem Konstruktor dem ich die ID (integer) übergebe. Mithilfe dieses Konstruktors wurde nun aus der DB die dazugehörigen Daten ausgelesen.


Du hast gar keine Persistenzschicht, das ist dein Problem, deine fachlichen Klassen übernehmen diese Aufgabe mit, auch "ActiveRecord" genannt.
Stell um auf DAOs, sonst wird das nix


----------



## SlaterB (10. Mai 2010)

> Das einzige was mir einfallen würde, ist dass ich quasi auf der Persistenzschicht jedes fachliche Objekt mit einem leeren Konstruktor und einer set ID Methode neu erzeuge.

du meinst zu jeder Klasse eine neue Klasse zu schreiben? das wäre auch mein Vorschlag gewesen,

vorher kannst du noch versuchen, einen privaten oder protected Default-Konstuktor hinzufügen, 
ob das geht ist zu testen, und wäre fachlich eher hinnehmbar?


----------



## eolith421 (17. Mai 2010)

Danke für eure Hilfe, die hat mit sehr geholfen. War zwar etwas mühsam, aber ich habe es jetzt hinbekommen eine halbwegs saubere Persistenzschicht hinzubekommen. 

Liebe Grüße,
Florian


----------

