【问题标题】:JDO getKey sometimes returns null after newly persisted ojbectJDO getKey 有时会在新的持久对象后返回 null
【发布时间】:2011-03-04 23:53:05
【问题描述】:

我有同样的问题,但在下面的链接中从未得到解决。有人解决了吗?

Datanucleus JDO Retrieve newly generated primary key

使用JDO + GAE,调用makePersistent后,有时Object.getKey()返回一个Key对象,有时返回null。

我正在使用事务。我已经尝试分离副本,使对象瞬态,在 Key 字段上设置 defaultFetchGroup=true,但我仍然无法在始终填充 Key 字段的情况下获得一致的结果。

文档说明在调用 makePersistent 后 key 字段将可用,但这只是有时。

谢谢。

【问题讨论】:

    标签: jdo


    【解决方案1】:

    如果在 txn 中使用:对于悲观的 txn,任何生成的字段都应该被填充,而对于乐观的 txn,它们不会被填充,直到你调用 pm.flush()。至少这是 JDO 规范。如果在 txn 之外使用,则必须等到 makePersistent() 被刷新(直到下一个 txn 才会刷新)。

    【讨论】:

      猜你喜欢
      • 2011-11-30
      • 2011-10-30
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多