2011-01-04 4 views
1

自動生成されたIDを持つ新しいJavaオブジェクトを永続化しようとしていますが、EntityManagerのpersist()メソッドを呼び出すときに、私は私のObjectクラスを持っている..Google App Engine JPA persist()メソッドがオブジェクトのIDを入力していません

... 
    @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実装のバグですか?

どのような提案も大歓迎です!

答えて

2

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