急切地获取相关的集合大小而不初始化集合

时间:2016-02-12 02:49:10

标签: java hibernate collections one-to-many

我有一个通过一对多关系与另一个实体相关联的实体。

当我加载实体时,我只想加载相关集合的大小(这个与之关联的实体数量)&我希望以EAGER方式执行此操作,以便在获取基本实体时(在单个查询中)获取此内容。

Hibernate count collection size without initializing显示了如何以懒惰方式执行此操作。我想以热切的方式做到这一点,因为我有一些基于此的UI功能,并且不想多次查询。

可以使用Formula,但它们不支持HQL。在hibernate中还有其他任何方式吗?

2 个答案:

答案 0 :(得分:0)

Hibernate有一个名为Formula的注释应该适合你:

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e2785

答案 1 :(得分:0)

您可以为此目的使用HQL查询:

select e, (select count(c) from Entity e1 join e1.collection c where e1.id = :id)
from Entity e
where e.id = :id