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

2024-12-04 09:55:46
推荐回答(3个)
回答1:

你可以使用一楼的方式

如果使用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);
}
}

回答2:

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

回答3:

getHibernateTemplate().delete(Entity)