java框架hibernate批量删除数据的时候用啥方法效率比较高?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java框架hibernate批量删除数据的时候用啥方法效率比较高?相关的知识,希望对你有一定的参考价值。
参考技术A 你可以试一下将ID放到list中,hibernate可以传入list的参数,如:\\x0d\\x0aString hql = "delete bean where id in (:idList)";\\x0d\\x0aQuery query = this.getSession().createQuery(hql);\\x0d\\x0aquery.serParameterList("idList",idList);//第二个参数idList为传入参数,idList中的值的类型与DB中ID类型一致\\x0d\\x0aquery.executeUpdate();hibernate如何删除数据
大致代码应该怎么写?
"拼串"形成的HQL语句的写法,其能够形成一条语句,从而效率得到最大的提升。
参考技术A 用Query删除Session
session=HibernateSessionFactory.getSession();
String
hql="delete
People
where
id=:id";
Transaction
t=null;
try
t=session.beginTransaction();
Query
q=session.createQuery(hql);
q.setParameter("id",
id);
q.executeUpdate();
t.commit();
catch(Exception
ex)
if(t!=null)
t.rollback();
finally
session.close();
直接用Session
People
p=null;
Session
session=HibernateSessionFactory.getSession();
p=(People)session.get(People.class,
id);
if(p!=null)
session.delete(people);
//都要用事务否则不删除 参考技术B 用Query删除
Session session=HibernateSessionFactory.getSession();
String hql="delete People where id=:id";
Transaction t=null;
try
t=session.beginTransaction();
Query q=session.createQuery(hql);
q.setParameter("id", id);
q.executeUpdate();
t.commit();
catch(Exception ex)
if(t!=null)
t.rollback();
finally
session.close();
直接用Session
People p=null;
Session session=HibernateSessionFactory.getSession();
p=(People)session.get(People.class, id);
if(p!=null)
session.delete(people);
//都要用事务否则不删除本回答被提问者采纳
以上是关于java框架hibernate批量删除数据的时候用啥方法效率比较高?的主要内容,如果未能解决你的问题,请参考以下文章