2015-01-13 46 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)解决了该问题。

谢谢!