Posted on 2009-06-20 18:59
胡娟 閱讀(1424)
評論(0) 編輯 收藏 所屬分類:
JAVA
1.
查找對象
1)
用find()方法查找對象
public void getPerson(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
EntityManager em = factory.createEntityManager();
//相當于Hibernate中的get方法
Person person = em.find(Person.class, 1);
System.out.println(person.getUserName());
em.close();
factory.close();
}
2)
用getReference()方法查找對象
public void getPerson2(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
EntityManager em = factory.createEntityManager();
//相當于Hibername中的load方法,延遲加載
Person person = em.getReference(Person.class, 1);
System.out.println(person.getUserName());
em.close();
factory.close();
}
find方法相當于Hibernate中的get方法,getReference方法相當于Hibernate中的load方法,具有延遲加載的作用;當查找的對象不存在時,find的方法返回null值,而getReference方法則拋出異常javax.persistence.EntityNotFoundException
2.
更新對象
public void update(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class, 1);
person.setUserName("kate");
em.getTransaction().commit();
em.close();
factory.close();
}
將游離狀態下的數據更新到數據庫中
public void updatePerson(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class, 1);
//把實體管理器中的實體變成游離狀態
em.clear();
person.setUserName("jerry");
//把游離狀態下的更新同步到數據庫中
em.merge(person);
em.getTransaction().commit();
em.close();
factory.close();
}
3.
刪除
public void delete(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class, 1);
em.remove(person);
em.getTransaction().commit();
em.close();
factory.close();
}