G
gegenpol
Gast
Hallo ich hoffe ich kann hier posten..
Meine Frage ist, wie holt man sich mit Hibernate spezifische Datensätzen, bzw. wie werden sie gemappt. Wenn ich z.B zwei Klassen habe (Day 1---zu---n Person), dann mach ich eine @OneToMany Annotation in die Klasse Day für das field persons, da ich bestimmte Days laden will, mit den dazugehörigen Persons.
Wenn ich jetzt manuell einen select schreibe, mappt Hibernate natürlich alles - also alle Persons. Das person field in der Day Klasse brauche ich natürlich, um neue Datensätze anzulegen bzw. vorhandene zu updaten.
Da bekomme ich dann alle Persons. Doch ich mach den manuellen select ja, weil ich ganz bestimmte Daten brauch.
Beim Durchlesen der Hibernate Doku bin ich nur auf das da gestoßen:
select new package.MyDBQueryResultKlasse(param, param, ...) from ....
Aber eigentlich bringt mir das doch nichts, weil wenn ich nur noch genau das selektiere was ich möchte (in eine neue Klasse), dann kann ich das Zeug ja nicht mehr persitieren.
Ich kanns auch nicht von der Klasse Person aus mappen, weil Hibernate das dann nicht verarbeiten kann wie ein Test gezeigt hat. Ich muss dann also trotzdem ein field persons mit @OneToMany (und mappedBy) in die Klasse Day rein machen, weil ein mappedBy von der @ManyToOne funktioniert nicht (da meckert schon der Compiler).
Wie macht man das? Wie geht man das an?
Ich brauch keine detaillierte Beschreibung - ein Hinweis auf die prinzipielle Richtung wäre schon ausreichend ..
Meine Frage ist, wie holt man sich mit Hibernate spezifische Datensätzen, bzw. wie werden sie gemappt. Wenn ich z.B zwei Klassen habe (Day 1---zu---n Person), dann mach ich eine @OneToMany Annotation in die Klasse Day für das field persons, da ich bestimmte Days laden will, mit den dazugehörigen Persons.
Wenn ich jetzt manuell einen select schreibe, mappt Hibernate natürlich alles - also alle Persons. Das person field in der Day Klasse brauche ich natürlich, um neue Datensätze anzulegen bzw. vorhandene zu updaten.
SQL:
select Day as day left join day.person as person with person.id = 3 ....
Da bekomme ich dann alle Persons. Doch ich mach den manuellen select ja, weil ich ganz bestimmte Daten brauch.
Beim Durchlesen der Hibernate Doku bin ich nur auf das da gestoßen:
select new package.MyDBQueryResultKlasse(param, param, ...) from ....
Aber eigentlich bringt mir das doch nichts, weil wenn ich nur noch genau das selektiere was ich möchte (in eine neue Klasse), dann kann ich das Zeug ja nicht mehr persitieren.
Ich kanns auch nicht von der Klasse Person aus mappen, weil Hibernate das dann nicht verarbeiten kann wie ein Test gezeigt hat. Ich muss dann also trotzdem ein field persons mit @OneToMany (und mappedBy) in die Klasse Day rein machen, weil ein mappedBy von der @ManyToOne funktioniert nicht (da meckert schon der Compiler).
Wie macht man das? Wie geht man das an?
Code:
[n] Person
-------------
@ManyToOne
- Day day
Code:
[1] Day
-------------
@OneToMany (mappedBy="Day")
- List<Person> persons