2012-08-29 33 views
0

我使用EclipseLink JPA和我的工作。並使用GenerationType.TABLE。JPA和添加的最後一個對象

當我使用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

我認爲問題是關於生成的ID,否則你當然已經在你的手中ID。

生成的ID可以沖洗操作之後發現以下:

  1. student.nameOfTheGetterForID調用
  2. PersistenceUnitUtil.getIdentifier經由:

    //鑄造結果ID
    em.getEntityManagerFactory的類型() 。.getPersistenceUnitUtil()則getIdentifier(學生);

+0

感謝您的答覆。我解決了我的問題 – Giancarlo

相關問題