当我创建一个定义"gae.encoded-pk"和"gae.pk-id"持久化的类时,encoded-pk会更新,但id仍然为null.没有例外被抛出,代码是谷歌文档中的直接复制粘贴,所以我对这里可能发生的事情感到茫然.
该类定义:
@PersistenceCapable
public class MyClass {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-id", value="true")
private Long keyId;
Run Code Online (Sandbox Code Playgroud)
而且我坚持这样:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(myInstance);
// myInstance = pm.makePersistent(myInstance); - Produces the same result.
} finally {
pm.close();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用调试器来逐步执行此代码,但即使在关闭持久性管理器之后,keyId仍为null.
我还应该指出,这是使用google appengine开发工具包在本地运行的.关于我如何调试这个的任何指针将不胜感激!