Seam对话中的Hibernate会话变得太大了

时间:2011-09-21 00:19:29

标签: hibernate seam

我们正在使用Seam对话来创建一个跨越多个页面的向导,其中一些屏幕会加载大量数据供用户选择(可能有几千条记录)。 Hibernate会话保留了所有内容,这是内存使用和性能的问题(刷新需要几秒钟)。

我们唯一的选择是在我们加载数据时驱逐数据,还是有更好的方法来管理它?

2 个答案:

答案 0 :(得分:0)

如果你的屏幕在会话中保留了数千条记录(显然,这取决于这些记录有多大),肯定会有问题。

如何解决问题取决于很多因素。

  • 可以存储在一个地方的应用范围内的数据吗?
  • 你可以在Hibernate级别(比如ehcache)或者在...中缓存它吗?
  • ...位于应用和数据库之间的外部缓存?
  • 您是否需要将所有数据保留在这些记录中,还是只需要一小部分(如ID和标签)就足够了?

答案 1 :(得分:0)

您无需在对话中保存所有内容

只需保留用户插入的数据并使用事件范围进行查询,并在每次访问向导页面时进行查询。

只是不要保留查询结果。