标签: java performance hibernate collections
当我们使用Hibernate的一对多关系映射(例如一个房子,许多窗口)并调用像house.getWindows().size()这样的方法时,Hibernate会非常聪明地调用select count吗?或者,它会从window表中获取映射到house表中的行的所有行?
house.getWindows().size()
select count
window
house
通过迭代计算子项可能效率非常低,因为很多关于窗口的数据都可以在没有任何需要的情况下获取。 size()同样糟糕吗?如果在某处配置了结果集限制,那么size()会工作吗?
size()
答案 0 :(得分:2)
通常会在调用size()的情况下初始化集合,但可以使用其他注释更改此集合。
如果要执行SELECT COUNT查询,则需要指定一些其他注释或XML属性。
SELECT COUNT
有关详细信息,请参阅this SO讨论。