2

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

在我的 A 类中,我想添加:

int size;

这将用 B 元素的数量来评估。所以当我打电话时,myA.getSize()我会得到它。

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

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

4

2 回答 2

3

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

是的,使用公式

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

示例中的更多示例:各种映射

于 2010-02-23T11:10:22.350 回答
1

另一种方法是在集合上使用lazy=extra 。参考文档中几乎没有提到这一点,并在此处进一步解释。

对集合使用lazy="extra" 来实现“智能”集合行为,即一些集合操作,如size()、contains()、get() 等,不会触发集合初始化。这仅适用于非常大的集合。

于 2010-02-23T14:29:35.787 回答