【问题标题】:How to use createAlias for a null Set Attribute with Hibernate Criteria Api?如何将 createAlias 用于具有 Hibernate Criteria Api 的空集属性?
【发布时间】:2014-07-30 16:39:25
【问题描述】:

我有一个实体 Car 具有一组可为空的小插图,我想获取没有小插图的 Car 列表。

我试过这个,但我找不到我的路......

Criteria criteria = getSession().createCriteria(Car.class);
criteria.createAlias("vignettes", "V");
criteria.add(Restrictions.or(Restrictions.lt("V.vignetteDateFin", dateDebut),Restrictions.eq("V.vignetteDateFin", null))) 

你能提出任何想法吗?

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:
    Criteria criteria = getSession().createCriteria(Car.class);
    criteria.createAlias("vignettes", "V");
    criteria.add(Restrictions.or(
        Restrictions.lt("V.vignetteDateFin", dateDebut),
        Restrictions.isNull("V"))
    );
    

    如果这不能满足您的要求,您可能需要一个子查询。请参阅此相关问题:Hibernate Criteria: adding additional restriction to Restrictions.isEmpty

    【讨论】:

      【解决方案2】:

      我解决了这个问题。

      替换这一行:

      criteria.add(Restrictions.or(
      Restrictions.lt("V.vignetteDateFin", dateDebut),
      Restrictions.isEmpty("V"))
      

      这个:

      criteria.add(Restrictions.or(
      Restrictions.lt("V.vignetteDateFin", dateDebut),
      Restrictions.isNull("V"))
      

      【讨论】:

        猜你喜欢
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 2012-01-29
        • 1970-01-01
        • 2012-04-09
        • 2017-04-14
        • 1970-01-01
        相关资源
        最近更新 更多