Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 A 类,它有一个 B 元素列表。
在我的 A 类中,我想添加:
int size;
这将用 B 元素的数量来评估。所以当我打电话时,myA.getSize()我会得到它。
myA.getSize()
是否可以在休眠映射中使用单个属性映射计数查询?
我不想加载列表,这就是我想添加 size 属性的原因。
是的,使用公式:
<property name="size" type="integer" formula="( select count(a.getBs) from A a where a.id = aid )"> </property>
示例中的更多示例:各种映射。
另一种方法是在集合上使用lazy=extra 。参考文档中几乎没有提到这一点,并在此处进一步解释。
对集合使用lazy="extra" 来实现“智能”集合行为,即一些集合操作,如size()、contains()、get() 等,不会触发集合初始化。这仅适用于非常大的集合。