Hibernate gleicher select unterschiedliche Ergebnisse

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo,

ich hab ein komisches Phänomen und vielleicht hat mir jemand ein paar Tips an was es liegen könnte weil ich weiß nicht weiter.

Ich hab zum Testen einen hardcodierten select gemacht ganz einfach.
Klasse A hat eine Liste von Klasse B
So jetzt bekomme ich ein Objekt A mit 3 Objekten der Klasse b zurück--> passt
Führe den gleichen Select nochmal aus bekomme das gleiche Ergebniss -->passt
Schließe meine Anwendung Starte sie neu führe den select nochmal aus auf einmal bekomm ich ein Objekt A und NUR NOCH EIN Objekt der Klasse B --> bäh

So dann habe ich den Select mit dem HQL Editor ausgeführt, weil ich dachte ich hab die 2 Objekte aus der DB gelöscht, aber sie sind noch da??
Das passiert nur wenn ich die Anwendung zum 2ten mal Starte beim 1. mal ist alles normal beim 2ten mal hat Objekt A immer NUR EIN Objekt der Klasse B.
Aber in der DB sinds 3 und wenn ich den select im HQL Editor ausführe bekomme ich auch das richtige Ergebniss...

Irgendjemand eine Anregung für mich was ich überprüfen könnte und müsste.

Komisch halt dass es in der gleichen sessionFactory funktioniert und in einer neuen dann nimmer =(...???:L

thx
 
So dann habe ich den Select mit dem HQL Editor ausgeführt, weil ich dachte ich hab die 2 Objekte aus der DB gelöscht, aber sie sind noch da??
Das passiert nur wenn ich die Anwendung zum 2ten mal Starte beim 1. mal ist alles normal beim 2ten mal hat Objekt A immer NUR EIN Objekt der Klasse B.
Aber in der DB sinds 3 und wenn ich den select im HQL Editor ausführe bekomme ich auch das richtige Ergebniss...
Werden die Transaktionen auch committed?
HQL hat ime das Problem,dass wenn es nicht sauber beendet wird, nicht alle Daten von Cache auf die Platte gesschrieben werden.
 
das ist doch kein Problem, Gott sei Dank muss man da sagen,
wobei ich bisher glaube, beobachtet zu haben, dass manchmal doch was in die DB gelangt,
da bin ich eher hinsichtlich 'wird zu früh geschreiben' skeptisch
 
Werden die Transaktionen auch committed?
HQL hat ime das Problem,dass wenn es nicht sauber beendet wird, nicht alle Daten von Cache auf die Platte gesschrieben werden.

Warum committed???
Ich hab mach nur einen lesenden Zugriff. Und die Daten sind ja schon drin ...

Also mit mit eclipse Hibernate tools bekomme ich immer das richtige Ergebniss.
Mit der Anwendung bekomme ich nur das richtige Ergebniss solange ich sie nicht schließe beim neustart bekomme ich ein falsches.ABER mit den Hibernate tools bekomme ich immer noch ein richtiges ergebniss also sind die Daten ja noch in der DB(vermutung)...

EDIT:
Das passiert nur bei diesem einen Fall die anderen Sachen klappen ja wunderbar. Zum Verzweifeln 😀...
 
Zuletzt bearbeitet von einem Moderator:
Hab noch was rausgefunden...
Also habs mal mit normalen SQL versucht da klappts also das DB Schema ist richtig.

Wenn ichd ie Abgfrage mit meiner alten session mache fehlen mir die Objekte mach ich ein sessionFactory.openSession() und versuche die gleiche Abfrage mit der dann passt es wieder.
Also vermute ich mal dass was mit meiner Session nicht stimmt...

Jemand ne Idee was ich prüfen kann? :bahnhof:
 
war es denn ein Bug oder ein sinnvolles Verhalten (inwiefern?) oder hast du es generell umgestellt, ohne es nachvollziehen zu können?
 
Also so richtig nachvollziehen konnte ich es noch nicht,
aber ich hab gesehen sobald er das Objekt aus der DB in die Session lädt er immer ein falsches Ergebnis hatte. Dann war meine Vermutung dass es wohl am Mapping liegt und hab ein bischen rumprobiert und hab das fetch rausgemacht, damit hibernate den default nimmt. Damit hat es dann funktioniert.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben