我有一个带有@ID注释的属性。持续对象时,ID将自动生成。这意味着在我坚持对象之前,未定义ID值。坚持下去之后,它具有ID(在数据库中),但是不幸的是,只要我不从DB重新加载它,该字段仍然保持为空。有什么简单的方法可以找出生成的ID吗?还是更好:配置将其写入现场?

提前致谢

有帮助吗?

解决方案

ID在冲洗后分配。假设 Foo 实体有一个 id 用标准注释的属性 @Id @GeneratedValue 注释,以下代码有效:

Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top