Envers撤回了大量数据

时间:2013-03-21 20:33:51

标签: java hibernate hibernate-envers

我目前正在用envers审核我的数据库并且它做得很好。我已经解析了各种实体并在UI中显示结果也很有效。

我现在遇到了性能问题。我正在查询实体获取记录,此查询大约需要5秒钟!执行SQL似乎有许多简单的SQL。该查询似乎回落了很多!

最好用一个例子来解释

我要查询的实体是House

这与Room一对一(是奇怪的例子;))

我的House有一个字段,其中引用了Room。房间不知道数据库级别的House,但在休眠状态下确实有一个mappedBy字段。

现在Room还有其他参数,例如家具列表,窗户和门。

当我查询房子并打电话给House.getRoom().getId()时,看来envers正在查询Room内的所有参数。它将撤回所有家具信息,所有窗口信息等。我想要审核的是房间,所以我只会比较房间中的简单参数,如wallColour等基本字符串或整数。

我的hibernate配置是依赖于参数的eagily和lazy抓取,但看起来Envers正在拉动所有内容。

有趣的是我发现如果关系被颠倒(Room实体有House ID),那么当我调用room.getHouse()。getId()时,它不会拉动所有东西。

这是一个休眠的问题,或者我是如何使用它的?

我怎样才能让envers只是为了阅读Room中的内容然后如果我调用getFurnitureList()然后尝试并懒得加载而不是eagily?

提前致谢

修改 我一直在看预测,我想知道我是否可以使用它只是从这个对象返回特定变量。有谁知道这是否可以解决我的问题?我仍在调查他们,但任何建议将不胜感激

由于

0 个答案:

没有答案