「gae.encoded-pk」と「gae.pk-id」の両方を永続的に定義するクラスを作成すると、encoded-pkは更新されますが、idはnullのままです。例外はスローされず、コードはGoogleのドキュメントのストレートコピーペーストであるため、ここで何が起こっているのかは分かりません。Datanucleus gae.pk-idがmakePersistentに設定されていません
クラスが定義されています。
@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;
そして、私はこのようにそれを永続的に:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(myInstance);
// myInstance = pm.makePersistent(myInstance); - Produces the same result.
} finally {
pm.close();
}
私はこのコードをステップ実行するデバッガを使用していますが、鍵IDがnullのまま、した後も持続マネージャが閉じられます。
これは、Google App Engine開発キットを使用してローカルで実行されていることを指摘しておきます。どのように私はこれをデバッグすることができたかについてのすべてのポインタは非常に感謝される!
ここで同じ問題が発生します – craigrs84