Hallo zusammen -
Ich glaube, dass der Open Session in View Filter in Wahrheit eine Frau ist ;)
Warum? Es passieren seltsamste Dinge, Dir ich mir absolut nicht erklären kann. Daher bitte ich Euch: helft mir ^^
Also - folgendes Problem:
Ich habe ein Objekt, dass ich persistieren möchte, sagen mal mal BUCH. Dabei gehe ich vor wie jeder andere auch - letztlich rufe ich die saveVoid(T) Methode auf, und das Objekt wird gespeichert...
So ganz stimmt das aber nicht, denn gespeichert wird es erst, wenn der Request abgeschlossen ist ( klar, weil OSIVF).
Ich kann das Objekt aber durchaus direkt wieder laden, indem ich die Methode load(id) aufrufe. Das klappt auch wunderbar, auch wenn das Objekt noch gar nicht wirklich in der Datenbank steht :)
Was aber nicht funktioniert: wenn ich nach dem Objekt suche, also mit der Methode find(query) dann findet er nix. Um es vorweg zu nehmen, die query stimmt :)
Das will mir nicht in den Kopf - was mache ich bloß falsch?
Meine Vermutung: load() ruft Dinge aus der Datenbank und der Session auf, während find nur auf der Datenbank arbeitet. Das würde einen Sinn ergeben, da die Daten ja noch nicht wirklich weggeschrieben wurden.
Aber klingt das auch logisch? Ehrlich gesagt: NEIN.
Dazu kommt noch, dass ein weiteres Phänomen meine ganze Aufmerksamkeit beansprucht:
Wenn ich nun meine find() Methode ein ganzes Stück später aufrufe (aber immer noch in der selben Klasse ) , also nachdem 100 andere Dinge in der Datenbank gemacht wurden, dann findet er auf einmal alles ?!
Der Witz ist, dass diese 100 anderen Dinge nichts anderes sind, eigentlich schreibe ich nur Daten weg...nur halt eben nicht BUCH, sondern z.B. BILD.
Also - hat da einer eine Idee was ich verbessern kann oder wodrauf ich achten muss ?
Lieben Gruß und danke schonmal
Stefan
PS: Sorry, wegen des doppel-Eintrags, war keine böse Absicht. Könnte ein Admin das bitte korrigieren?
|