В классе JavaDoc класса Session описание метода delete:
Удалите постоянный экземпляр из хранилища данных. Аргумент может быть экземпляром, связанным с принимающим сеансом или временным экземпляром с идентификатором, связанным с существующим постоянным состоянием.
Мои вопросы:
- Я хочу удалить выделенный объект, я могу использовать этот метод, сессия AFAIK сначала делает объект постоянным от отсоединения, а затем выполняет его работу. Я прав?
- Если я не уверен в существовании объекта в базе данных, должен ли я использовать Session.get(), чтобы проверить, является ли оно нулевым, а затем выполнить операцию удаления или я могу использовать операцию прямого удаления?
Вот фрагмент кода:
public void removeUnallocatedUserIfExits(final long itemId) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
session.flush();
session.setCacheMode(CacheMode.IGNORE);
UnallocatedUser unallocatedUser;
if ((unallocatedUser = (UnallocatedUser) session.get(UnallocatedUser.class, itemId)) != null) {
session.delete(unallocatedUser);
}
session.flush();
return null;
}
});
}
Хорошо?