hibernate的session,能实现批量操作的

来源:百度知道 编辑:UC知道 时间:2024/07/07 14:42:55
比如做批量删除,传统的jdbc,可以设为手动提交,然后执行n条sql语句,最后统一提交一次
session能实现吗

批量删除(项目片段)

public void DelTbOpinionByUser_id(String userid) {
Session session = HibernateSessionFactory.getSession();
Transaction ta = session.beginTransaction();
// TbOpinion to=null;
try {
/*===============================批量删除==============================*/
String hqlDelete = "delete TbOpinion as to where to.tbUser.id = :oldName";
int deletedEntities = session.createQuery( hqlDelete )
.setString( "oldName", userid )
.executeUpdate();

// for (int i = 0; i < 100000; i++) {
// sql="delete TbOpinion as to where to.tbUser.id='"+userid+"'";
// Query q=session.createQuery(sql);
// q.executeUpdate();
// if (i%20==0) {
// session.flush();
// session.clear();
// }
// }
ta.commit();
} catch (Exception e) {
ta.rollb