java - 使用 JPA 时如何高效地找出新对象自动生成的 ID?

标签 java orm jpa persistence openjpa

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

提前致谢

最佳答案

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

Foo foo = new Foo();
//...
em.persist(foo);
em.flush();
assert foo.getId() != null;

关于java - 使用 JPA 时如何高效地找出新对象自动生成的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686863/

相关文章:

c# - 对象引用未保存的 transient 实例 在刷新之前保存 transient 实例

php - PhalconPHP : eager load related records?

java - 传承策略

JPA @OneToMany : foreign key is null

java - 如何实现对两个相同类的一个引用?

java - 为计时器创建 ActionListener

java - 在java中读取动态json文件并合并它们

java - 如何在 Android Material Design 选项卡中一次显示固定数量的选项卡?

ruby - ObjectMapper : Find geo places within a certain square, 按邻近度排序

java - JPA 正在为我的 INT 字段创建 VARCHAR 列