获取属性中列表的大小

时间:2010-02-23 10:53:42

标签: java hibernate orm hibernate-mapping

我有一个A类,它有一个B元素列表。

在我的A班中,我想补充一下:

int size;

将使用B元素的数量进行估算。所以,当我打电话给myA.getSize()时,我会拥有它。

是否可以在hibernate映射中使用单个属性映射计数查询?

我不想加载列表,这就是我想添加大小属性的原因。

2 个答案:

答案 0 :(得分:3)

  

是否可以在hibernate映射中使用单个属性映射计数查询?

是的,请使用formula

<property name="size" type="integer"
formula="( select count(a.getBs) from A a where a.id = aid )">
</property>

Example: Various Mappings中的更多示例。

答案 1 :(得分:1)

另一种方法是在集合上使用 lazy = extra reference documentation中几乎没有提到这一点,并进一步解释here

  

对集合使用lazy =“extra”   “聪明”的收集行为,即一些   集合操作,如size(),   contains(),get()等不要触发   集合初始化。这是   只对非常大的人才有意义   集合。