我目前正在用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?
提前致谢
修改 我一直在看预测,我想知道我是否可以使用它只是从这个对象返回特定变量。有谁知道这是否可以解决我的问题?我仍在调查他们,但任何建议将不胜感激
由于