Если я позвоню Session.load(Class, Serializable)
, например, Session.load(Class<MyClass>, 1L)
если в базе данных нет строки с id = 1, возвращается прокси-сервер javassist (?) com.sun.jdi.InvocationException
. Я изо всех сил пытаюсь понять, что здесь происходит - конечно, это должно просто вернуть null
?
Если я использовал LockOptions
в session.load(...)
, то выдается исключение Hibernate, говорящее о том, что строка не существует - это имеет для меня больше смысла, чем первое.
Вот что я пытаюсь кодировать:
public MyClass ensureEntity(Long id) {
MyClass entity = (MyClass)Session.load(Class<MyClass>, 1L);
if(entity == null) {
entity = new MyClass(id);
getSession().saveOrUpdate(entity);
}
return entity;
}