JPA和最后添加的对象

时间:2012-08-29 14:17:07

标签: jpa jpa-2.0 eclipselink

我使用EclipseLink JPA和我的工作。并使用GenerationType.TABLE。

当我使用persist创建一个新对象时,如何检索所创建对象的id字段。

示例:

em.getTransaction().begin();

Student student = new Student();

student.setName("Joe");

em.persist(student);
em.flush();
em.getTransaction().commit();

Query query = em.createQuery("SELECT e FROM Student e");
List<Student> list = (List<Student>) query.getResultList();
System.out.println(list);

em.close();
emf.close();

所以我看到了所有的学生,但是你怎么知道我在有竞争的环境中创建的是哪一个。

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为问题是关于生成的id,因为否则你当然已经拥有了id。

刷新操作后可以找到生成的id,如下所示:

  1. 致电student.nameOfTheGetterForID
  2. 通过PersistenceUnitUtil.getIdentifier

    //将结果转换为id的类型 。em.getEntityManagerFactory()getPersistenceUnitUtil()则getIdentifier(学生);