0

使用所有 spring roo vanilla 控制器和对象,每次我请求例如 /project/something?page=N&size=M 时,休眠日志都会显示三个请求,首先是 SELECT 获取所有条目,然后是一个带有 LIMIT 和OFFSET,后跟 SELECT 计数。

为什么会有第一个选择来获取所有条目?我想摆脱这个,因为如果表中有很多条目,它的性能真的很差。

它是冬眠还是春袋鼠相关?

我正在使用最新的 roo & hibernate。

4

1 回答 1

1

好的,我找到了!

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

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

这也被报告为一个错误和 Spring Jira,似乎已在 Roo 1.2.0 中修复,因此更好的解决方案是升级。

于 2012-05-05T15:26:26.087 回答