如何在使用JPA时有效地找到新对象的自动生成的id?

use*_*729 3 java orm persistence jpa openjpa

我有一个用@Id注释的属性.持久化对象时将自动生成ID.这意味着在我持久化对象之前未定义ID值.在持久化之后,它有一个ID(在数据库中),但不幸的是,只要我不从DB重新加载它,该字段仍然保持为空.有没有简单的方法来找出生成的ID?或者更好:配置它将被写入字段?

提前致谢

Pas*_*ent 6

在刷新后分配id.假设Foo实体具有id使用标准@Id @GeneratedValue注释注释的属性,则以下代码有效:

Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;
Run Code Online (Sandbox Code Playgroud)