插入后检索时出现空对象

时间:2015-01-13 15:08:19

标签: java hibernate spring-mvc hql

使用JUnit,我试图测试一些业务逻辑。我在日志中发表了以下陈述:

  

[EL Fine]:sql:2015-01-13 19:55:39.369 - ClientSession(623375944) - 连接(1559247181) - 线程(线程[main,5,main]) - INSERT INTO SCHEMA .TABLE_NAME(ID_SEQ,...)VALUES(?,...)       bind => [363,...]

在同一测试期间,我尝试获取相同的记录,但获取NullPointerException,并将以下语句作为最后一个语句:

  

[EL Fine]:sql:2015-01-13 19:55:52.976 - ServerSession(512108848) - 连接(1285635179) - 线程(Thread [main,5,main]) - SELECT ID_SEQ, ...来自SCHEMA.TABLE_NAME WHERE(ID_SEQ =?)       bind => [363]

此外,在尝试通过父对象检索时,我确实获得了正确的实例,但无法使用Id_Seq检索相同的实例。我无法弄清楚这里出了什么问题;任何帮助将受到高度赞赏。 感谢

1 个答案:

答案 0 :(得分:2)

找出问题的根本原因,分享以防这可以帮助某人:

我的方法用@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)注释,它实际上是在启动一个新事务(另一个正在进行中)并因此导致空引用。将其更改为@Transactional(propagation = Propagation.REQUIRED, readOnly = false)即可解决问题。

谢谢!