【问题标题】:Hibernate Criteria API - How to get a list of an object attributeHibernate Criteria API - 如何获取对象属性的列表
【发布时间】:2012-10-30 08:41:13
【问题描述】:

我有两节课

class House {
    String id
    Long size
    Resident resident
}

class Resident {
    String id
    String name
}

我想要的是一份居民名单,但我需要对房子进行一些限制。方程在大小等式上> 20 并将结果限制为 10

居民没有提到房子。

我真的不知道该怎么做。

我试过了:

Criteria crit = session.createCriteria(House.class);
crit.add(Expression.ge("size", 20));
crit.setMaxResults(10);
crit.addOrder(Order.desc("size"));
return crit.list();

但我不知道如何获得与居民的连接

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:

    试试下面的代码:

    Criteria crit = session.createCriteria(House.class);
    crit.add(Expression.ge("size", 20));
    crit.setMaxResults(10);
    crit.addOrder(Order.desc("size"));
    crit.setFetchMode("resident", FetchMode.JOIN);
    crit.setProjection(Projections.property("resident"));
    return crit.list();
    

    【讨论】:

      【解决方案2】:

      “居民没有对房子的引用”-当没有关联时,AFAIK Hibernate Criteria 无法对给定条目的另一个条目创建限制。

      所以你不能为Resident.class 创建一个Criteria 并在那里添加Restrictions。

      您可以尝试为您的House.class 创建一个Criteria,添加所需的Restrictions,然后设置一个Projection 以获取您的Resident.class 实例。

      到目前为止,您尝试了什么?

      【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      相关资源
      最近更新 更多