3

@Idで注釈が付けられた属性があります。IDは、オブジェクトを永続化するときに自動的に生成されます。これは、オブジェクトを永続化する前にID値が定義されていないことを意味します。永続化した後、(データベース内に)IDがありますが、残念ながら、DBからリロードしない限り、フィールドはnullのままです。生成されたIDを見つける簡単な方法はありますか?またはそれ以上:フィールドに書き込まれるように構成するには?

前もって感謝します

4

1 に答える 1

6

IDは、フラッシュ後に割り当てられます。Fooエンティティにid標準のアノテーションが付けられた属性があるとすると@Id @GeneratedValue、次のコードが機能します。

Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;
于 2010-04-21T22:20:50.973 に答える