java - Hibernate - 如何在不加载到内存的情况下删除条件?

标签 java hibernate

我有一个对象-

 @Entity
 public class myObject{
      public string fieldA;
      public string fieldB
      ...
 }

我没有它的任何实例,但我想删除数据库中所有具有 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;

最佳答案

看看使用 native sql in hibernatesession.createSQLQuery 以确保 hibernate 不参与使用 HSQL 连接 bean。

同时避免使用字符串连接来构建您的查询。最后,您的数据库很可能成为像这样的简单查询的瓶颈,因此请确保您在表上有适当的索引。

关于java - Hibernate - 如何在不加载到内存的情况下删除条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6599642/

相关文章:

java - 如何使用struts taglib将参数传递给javascript函数?

java - 如何直接在表中的JComboBox中搜索

java - JPA - SortedSet 需要 OrderBy

java - 为什么默认禁用 hibernate batching/order_inserts/order_updates?

java - 如何在JSP中调用方法及其变量?

java - 测试 RxJava2 doOnComplete()

mysql - 乐观锁失败;使用 Spring Data 的 CrudRepository 保存记录时,嵌套异常为 org.hibernate.StaleObjectStateException

java - Hibernate 生成额外的查询

java - 从 Java 9 到 Java 8 的兼容性和迁移

java - 一对多、多对一和多对多之间的区别?