1,hibernate中用hql怎么执行delete的sql语句

如题所述

你可以使用一楼的方式

如果使用hql方式,参考如下:

public void testDml(){
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.getTransaction();
session.beginTransaction();
Query query = session.createQuery("delete Student s where s.id=?");
query.setInteger(0, 1);
query.executeUpdate();
tx.commit();
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
}finally{
HibernateUtils.closeSession(session);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-25
Session s = this.getHibernateTemplate().getSessionFactory().openSession();//获取session

Transaction tx = s.beginTransaction(); //打开事务(针对读数据库)

String hql="delete .... where a=?...";//准备hql

s.createQuery(hql).setString("a",值).executeUpdate();//更新

tx.commit();//提交事务

s.close(); //关闭session

参考资料:Q

第2个回答  2010-09-25
getHibernateTemplate().delete(Entity)