hibernate - 如何在可以为空的字段上创建条件?

标签 hibernate hibernate-criteria

我必须创建标准 标准在特定领域 我的属性(property) (在类(class) MyClass 上)。我必须选择所有具有 的对象prop = null 或满足 具体标准 .所以我应该做这样的事情:

Criteria criteria = this.sessionManager.getCurrentSession().createCriteria(MyClass.class);

specificCriteria = criteria.createCriteria('myProperity');
/* definition of specificCriteria */

Disjunction disjunction = Restrictions.disjunction();
disjunction.add(Restrictions.isNull('myProperity'));
disjunction.add(specificCriteria);

criteria.add(disjunction);

问题是由事实引起的:
  • 我不能将 Criteria 添加到 Disjunction(到 Disjunction 只能添加一个 Criterion),所以行:disjunction.add(specificCriteria);错了
  • 我无法以某种方式修改 specificCriteria 以接受 null,因为我无法对 null 制定标准。 (它给了我 NullPointerException)

  • 你有什么想法如何处理吗?

    最佳答案

    你可以在这里得到所有问题的答案
    这会帮助你

    例如,如果您的 MyClass 喜欢

    class MyClass{
       private long id;
       private String myProperity;
       .
       .
       .
       setter & getter
    }
    

    在这里,您的空问题已解决,这将符合其他标准。
    Criteria criteria = session.createCriteria(MyClass.class);
    
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.isNull("myProperity"));
    
    criteria.add(disjunction);
    
    criteria.add(Restrictions.eq("id", value));
    

    关于hibernate - 如何在可以为空的字段上创建条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9903562/

    相关文章:

    mysql - 在不知道其名称的情况下删除 MySQL 列索引

    java - Spring IoC 和通用接口(interface)类型实现

    java - 非必需的 1 到 1 映射的 Hibernate 投影/延迟加载

    java - Hibernate 多个表的连接和限制

    java - 有没有办法将 jpa 谓词数组传递给 KOTLIN 中的 criteriabuilder?

    java - 将 Hibernate 连接到两个数据库时出现问题

    java - Eclipse:升级到 Spring Boot 2.0.1 后无法检测类异常

    java - 与 Web 应用程序对话的独立 Java 类

    java - hibernate 条件 : hibernate left join without association

    java - 为什么这个 Hibernate Criteria Query 失败并返回 "No explicit selection and an implicit one cold not be determined"?