【发布时间】:2012-03-27 19:35:34
【问题描述】:
我正在寻找一种智能且易于阅读的方法来使用 JPA 获取持久实体的 id。 id 是Integer。
可以想到以下解决方案:
- 不使用
GeneratedValue策略。这需要在持久化之前寻找一个空闲的 id,然后将其放入要持久化的实体中:很麻烦,但可以。 - 使用
GeneratedValue策略。持久性提供者将负责 id 的生成。这看起来更聪明,但是如何获取 id 呢?
解决方案2见下文
MyEntity en = new MyEntity();
en.setName("My name");
em.persist(en);
System.out.println(en.getId());
这会打印一个空 id!
有什么建议吗?我正在使用 MySql、EclipseLink,但需要一个可移植的解决方案。
【问题讨论】: