【问题标题】:Null object on retrieval after insertion插入后检索空对象
【发布时间】:2015-01-13 15:08:19
【问题描述】:

使用 JUnit,我正在尝试测试一些业务逻辑。我的日志中有以下陈述:

[EL Fine]: sql: 2015-01-13 19:55:39.369--ClientSession(623375944)--Connection(1559247181)--Thread(Thread[main,5,main])--INSERT INTO SCHEMA .TABLE_NAME (ID_SEQ, ...) 值 (?, ...) 绑定 => [363, ...]

在同一个测试中,我试图获取相同的记录,但得到 NullPointerException,最后一条语句为以下语句:

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

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

【问题讨论】:

    标签: java hibernate spring-mvc hql


    【解决方案1】:

    找出问题的根本原因,分享以防万一:

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

    谢谢!

    【讨论】:

      猜你喜欢
      • 2014-11-26
      • 2019-05-08
      • 2011-07-05
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2014-08-26
      • 2019-11-17
      • 2013-05-02
      相关资源
      最近更新 更多