1

自動生成されたIDを持つ新しいJavaオブジェクトを永続化しようとしていますが、EntityManagerのpersist()メソッドを呼び出してもデータが入力されていません。Objectクラスにあります。

...
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
...

そして私はそれを本質的に使用して永続化しています...

emf = Persistence.createEntityManagerFactory("transactions-optional");
em = emf.createEntityManager();
em.persist(myObj);

それを永続化した後、idフィールドは入力されません。em.flush()を呼び出してみましたが、トランザクション内にある必要があると文句を言います。トランザクションは必要ありませんが、オブジェクトを永続化した直後にこのIDが必要です。

これはGAEのJPA実装のバグですか?

任意の提案をいただければ幸いです!

4

1 に答える 1

2

em.refresh(object)を呼び出すと、永続化されたオブジェクトのIDが入力されることを確認できます。

于 2011-01-07T22:27:04.637 に答える