我使用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();
所以我看到了所有的学生,但是你怎么知道我在有竞争的环境中创建的是哪一个。
提前致谢
答案 0 :(得分:0)
我认为问题是关于生成的id,因为否则你当然已经拥有了id。
刷新操作后可以找到生成的id,如下所示:
student.nameOfTheGetterForID
通过PersistenceUnitUtil.getIdentifier:
//将结果转换为id的类型 。em.getEntityManagerFactory()getPersistenceUnitUtil()则getIdentifier(学生);