1. 查找對象
1) 用find()方法查找對象
java
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. 更新對象 spa
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(); }
將遊離狀態下的數據更新到數據庫中 code
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(); }