JDO getKey有时在新持久对象之后返回null

时间:2011-03-04 23:53:06

标签: jdo

我有同样的问题,从未在下面的链接中解决。有没有人解决过这个问题?

Datanucleus JDO Retrieve newly generated primary key

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

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

文档说明调用makePersistent后关键字段可用,但有时这只是真的。

感谢。

1 个答案:

答案 0 :(得分:1)

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