2015-01-13 88 views
0

使用JUnit,我試圖測試一些業務邏輯。我在我的日誌中有以下聲明:插入後檢索空對象

:sql:2015-01-13 19:55:39.369 - ClientSession(623375944) - Connection(1559247181) - Thread(Thread [主,5,主]) - ?INSERT INTO SCHEMA.TABLE_NAME(ID_SEQ,...)VALUES(,...) 綁定=> [363,...]

在相同的測試,我試圖獲取相同的記錄,但得到的NullPointerException,用下面的語句作爲最後一個語句:

[EL精細]:SQL:2015年1月13日19:55:52.976 - 的ServerSession (512108848) - 連接(1285635179) - 線程(線程[main,5,main]) - SELECT ID_SEQ,... FROM SCHEMA.TABLE_NAME WHERE(ID_SEQ =?) bind => [363]

此外,當試圖通過父對象檢索時,我得到正確的實例,但無法使用Id_Seq檢索相同的實例。我無法弄清楚這裏出了什麼問題;任何幫助將不勝感激。 感謝

回答

2

想通的問題的根本原因,如果這將有助於分享某人:

我的方法與@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)這實際上是開始一個新的事務(另一個在平行進展),因此產生的註解在空引用中。將其更改爲@Transactional(propagation = Propagation.REQUIRED, readOnly = false)解決了該問題。

謝謝!