Я столкнулся с ситуацией, когда объект Hibernate, возвращенный из запроса, ненадежный.Ненадежные объекты спящего режима
Рассмотрим следующий код:
MyClass myClass = myDAO.get(id);
myClass.getId(); //This works
myClass.getName(); //This returns null sometimes, and works sometimes
Вот мой Получ:
@SuppressWarnings("unchecked")
public T get(ID id)
{
Session s = getSession();
T entity = (T) s.load(getPersistentClass(), id);
s.disconnect();
return entity;
}
Теперь я понимаю, что этот объект является прокси, и будет лениво загрузится, но я бы ожидал либо всегда работать, либо никогда не работать. Я здесь что-то не так?
load() используется по соображениям производительности (согласно рекомендации команды Hibernate). Я дам get() выстрел, но я все равно ожидал бы, что спящий режим будет получать участника, когда его попросят ... – Jesse
У меня была схожая, если не такая же проблема с использованием нагрузки, я изменил на get(), и все снова хорошо () – jottos
Я отмечаю это как ответ. Я изменил с load(), чтобы получить() некоторое время назад, и с тех пор не имел проблемы. – Jesse