Ich bin in eine Situation geraten, in der das Hibernate-Objekt, das von der Abfrage zurückgegeben wurde, unzuverlässig ist.Unzuverlässige Hibernate-Objekte
Betrachten Sie den folgenden Code ein:
MyClass myClass = myDAO.get(id);
myClass.getId(); //This works
myClass.getName(); //This returns null sometimes, and works sometimes
Hier ist meine get Methode:
@SuppressWarnings("unchecked")
public T get(ID id)
{
Session s = getSession();
T entity = (T) s.load(getPersistentClass(), id);
s.disconnect();
return entity;
}
Jetzt verstehe ich, dass dieses Objekt ein Proxy ist, und wird faul geladen sein, aber ich würde erwarten, dass es entweder immer arbeiten oder nie arbeiten. Mache ich hier etwas falsch?
load() wird aus Leistungsgründen verwendet (gemäß Empfehlung des Hibernate-Teams). Ich gebe get() einen Schuss, aber ich würde immer noch erwarten, Hibernate das Mitglied zu holen, wenn Sie danach gefragt ... – Jesse
Ich hatte ähnliche, wenn nicht das gleiche Problem mit Last, änderte ich um zu bekommen() und alles ist wieder gut () – jottos
Ich markiere dies als beantwortet. Ich habe vor einiger Zeit von load() zu get() gewechselt und seitdem kein Problem mehr. – Jesse