我有一个对象 -
@Entity
public class myObject{
public string fieldA;
public string fieldB
...
}
我没有任何实例,但我想删除db中的所有行
fieldA == A
。
这是正确的方法吗?
try {
session.beginTransaction();
session.createQuery("delete from MyObject where fieldA = " +
"BlaBla").executeUpdate();
session.getTransaction().commit();
savedSuccessfully = true;
} catch (HibernateException e) {
session.getTransaction().rollback();
savedSuccessfully = false;
} finally {
session.close();
}
return savedSuccessfully;
答案 0 :(得分:2)
看看使用native sql in hibernate和session.createSQLQuery
来确保hibernate不会涉及使用HSQL布线bean。
还要避免使用字符串连接来构建查询。最后,你的数据库最像是你的瓶颈,有这样一个简单的查询,所以请确保你有适当的索引。
答案 1 :(得分:0)
是的,要在不先查询数据的情况下进行批量删除,您可以使用HQL:
session.createQuery("delete from MyClass where ...").executeUpdate();
答案 2 :(得分:0)
如果您决定使用ORM实现,为什么要这样做?
在ORM实施的应用程序下删除某些内容的正确步骤是:
答案 3 :(得分:0)
要执行HQL DELETE,请使用Query.executeUpdate()方法