【问题标题】:Limit associated entities loaded through a Hibernate Criteria限制通过 Hibernate Criteria 加载的关联实体
【发布时间】:2010-01-06 15:19:39
【问题描述】:

是否可以限制通过 Hibernate Criteria 获取的关联实体的数量?考虑以下两个实体:

@Entity
public class History {

  @OneToMany
  private List<Entry> entries

  ...

}

@Entity
public class Entry {

  @ManyToOne
  private History history;
  private DateTime date;

  ...

}

我需要使用 Criteria 来获取所有 History 实体,但只返回每个 History 实体的最新 Entry 实体。换句话说,每个历史记录的条目字段应该只包含该历史实体的最新条目。即使我正在查询(使用标准)历史记录,我也需要执行诸如 order by 和 limit 之类的操作。

这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: hibernate criteria


    【解决方案1】:

    这可以通过在 Criteria 上调用以下命令来完成:

    criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)
    

    使用此 ResultTransformer,只会填充与限制匹配的关联实体。

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      相关资源
      最近更新 更多