spring整合hibernate以后,对于删除功能,只提供了delete(entity),而没有提供类似于get(entity.class,id)这样的API,这时,要想实现根据id来删除某一个对象,可以参考一下两种方法
1、不使用spring对hibernate的支持
String hql = "delete from Item where orderId = ?";
Session session = this.getSession();
session.createQuery(hql).setInteger(0, orderId).executeUpdate();
session.close();
2、使用spring对hibenrate的支持
final int orderId1 = orderId;
this.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
String hql = "delete from Item where orderId = ? ";
return session.createQuery(hql).setInteger(0, orderId1).executeUpdate();
}
});
对于以上两种方法,一个比较显著的区别就在于后者将session的关闭交给了框架去处理。

本文介绍了在Spring整合Hibernate环境下实现根据ID删除对象的两种方法:一种是直接操作Session,另一种利用Spring提供的HibernateTemplate。对比了两种方法的区别,特别是session管理方面的不同。
491

被折叠的 条评论
为什么被折叠?



