Spring Roo Hibernate在SELECT之前使用limit和offset创建额外的SELECT *

时间:2012-05-04 15:11:55

标签: hibernate spring-roo

使用所有spring roo vanilla控制器和物体,每次我请求例如/ project / something?page = N& size = M,hibernate日志显示三个请求,首先是SELECT获取 ALL 条目,然后有一个LIMIT和OFFSET,然后是SELECT计数。

为什么第一个选择提取所有条目?我想摆脱这个,因为如果表中有很多条目,它的表现非常糟糕。

是休眠还是与春天相关?

我正在使用最新的roo&冬眠。

1 个答案:

答案 0 :(得分:1)

好的,我找到了它!

Roo 1.1.5甚至在调用实际控制器方法之前调用每个CRUD请求的填充方法。填充方法从db中获取所有条目,这使得它成为一个巨大的过载,足以使Web应用程序完全无法使用并且在您的经理面前看起来很糟糕:(

你可以做的是自己实现填充方法,让他们做除了获取所有血腥条目以外的事情(谨慎使用,你可能会削弱其他东西,注意创建/更新),例如返回null或类似的东西。

这也被报告为一个bug和Spring Jira,看似用Roo 1.2.0修复,所以更好的解决方案是升级。