2012-09-11 47 views
2

我正在嘗試集成測試Gorm悲觀鎖,並且使用多線程同時模擬多個服務器的訪問,但是在每個線程中我都沒有得到預期的結果。這是我的代碼:GORM GPARS集成測試

@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 

我無法弄清楚發生了什麼,我認爲我的SessionFactory未綁定到每個線程,而且Domain.withTransaction我應該工作,但事實並非如此。

任何幫助?

+1

發佈問題的答案並將其標記爲接受的解決方案 – j4y

回答

2

它與集成測試的設置方法有關,我在內存中引導數據。一旦我將其移至Bootstrap,線程中的閉包可以綁定休眠會話!不管怎麼說,多謝拉!!

+0

您可以發佈整個示例課程嗎?我需要一個例子來比較。我的線程也無法綁定到會話。 – Ither

+0

我有類似的問題。你可以發佈你的代碼嗎? –