休眠Session.delete()一个对象(如果存在)
|
在Session类的JavaDoc中,delete方法的描述为:
从数据存储中删除持久性实例。该自变量可以是与接收会话相关联的实例,也可以是具有与现有持久状态相关联的标识符的瞬时实例。
我的问题是:
我想删除一个分离对象,可以使用这种方法吗?AFAIK会话首先使对象从分离中持久化,然后执行其操作。我对吗?
如果不确定数据库中是否存在该对象,是否应该使用Session.get()检查该对象是否为null,然后执行删除操作,或者可以直接使用删除操作?
这是一个代码片段:
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;
}
});
}
可以吗
没有找到相关结果
已邀请:
6 个回复
葛瞎说漓
传递给
,以删除该对象。此外,您无需检查该实体是否存在。如果在数据库中找不到记录,则应该有一个例外。实际上,我们通常不会真正遇到这种情况。我们总是删除一个现有的实体,我的意思是通常的逻辑就是这样。因此,无需这样做。您可以简单地做到这一点,
或者您也可以这样做
顺便说一句,您也可以使用此版本
,
勘掸府迫路
怪酞撩匹
缝皋
休眠删除查询
僻朵庙惩竣
壬驴拿歪竞