如何使用 JPA 获取上次持久化实体的 ID
我正在寻找一种智能且易于阅读的方式,以使用获取持久化实体的ID。该 ID 是一个 .JPA
Integer
人们可以想到以下解决方案:
- 不使用策略。这需要在持久化之前查找一个免费的id,然后将其放入要持久化的实体中:繁琐,但有效。
GeneratedValue
- 有策略。持久性提供程序将负责 id 生成。这看起来更聪明,但如何获取id?
GeneratedValue
有关解决方案 2,请参见下文
MyEntity en = new MyEntity();
en.setName("My name");
em.persist(en);
System.out.println(en.getId());
这将打印一个空 ID!
有什么建议吗?我正在使用MySql,EclipseLink,但需要一个可移植的解决方案。