我正在尝试对Gorm悲观锁进行集成测试,并使用多线程同时模拟来自许多服务器的访问,但是在每个线程中我都无法获得预期的结果。这是我的代码:

@Test
void testLockInBetweenCheck() {
def tid = IdocTidInfo.findByTid("AC10870D0E12504F3E88D575") //here tid is not null
withPool{
      [1,2].eachParallel{ tids ->
     IdocTidInfo.withTransaction{ tid ->
        def t = IdocTidInfo.findByTid("AC10870D0E12504F3E88D575") // here is t is null

我不知道发生了什么,我认为我的Hibernate sessionFactory没有绑定(bind)到每个线程,我应该工作的Domain.withTransaction却没有。

有什么帮助吗?

最佳答案

它与集成测试的设置方法有关,在该方法中,我将数据引导到内存中。一旦将其移至Bootstrap,线程的关闭即可绑定(bind)休眠 session !不管怎么说,多谢拉!!

关于hibernate - GORM GPARS集成测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12377140/

10-10 17:30