如何强制的JBoss 4.2.3清除Hibernate的会话缓存为每个请求?(How to forc

2019-09-24 05:52发布

这在我看来,JBoss的重用实体管理器和多个请求底层的Hibernate Session。 我已经运行一个测试证明,在某些情况下,一个实体的状态可能会过时,即使它只是获取使用em.find()

如何禁用此行为,并强迫清或扔掉使用的会话,以确保每个请求与清除缓存处理?

UPD:

下面是一个例子的情况。

HTTP请求1.一种会话bean创建实体实例,并使用字段存储为“A”设定为值1。持久实体获取ID = 4。

HTTP请求2.会话bean查找与ID = 4的实体,设置其场“A”到值2并保存它。

HTTP请求3.会话bean查找与ID = 4,并检查它的场的“A”的实体。 如果该值为1就做一件事情,如果是2它是另一回事。

在情况下,如果在请求3 EM碰巧是相同请求1时,发生不期望的行为。 我测试了这一点,得到了约。 失败的10%的病例。

Answer 1:

你尝试驱逐来自对象 会话



Answer 2:

好吧,我想通了这一点。 JBoss的正确处理会话,有您的帮助在我的测试=一个bug)很抱歉,并感谢名单



文章来源: How to force JBoss 4.2.3 to clear hibernate's session cache for every request?