Read : find()
Member findMember = em.find(Member.class, 1L);
System.out.println("findMember.id = " + findMember.getId());
find로 DB에서 조회를 할때 엔티티를 1차 캐시에서 찾아보고 1차 캐시에 서 없을 경우 쿼리를 날려 DB 조회후 1차 캐시에 적재하고 객체를 가지고 온다
Create : persist()
//비영속
Member member = new Member();
member.setId(101L);
member.setUsername("HelloJAP");
//영속
em.persist(member);
persist를 하기 전 엔티티객체에 파라미터를 셋팅할때는 영속성 컨텍스트에 관리되지 않는 상태인 비영속 상태이지만 persist에 추가되는 순간 영속성 컨텍스트에 관리되는 영속상태가 된다 쿼리는 commit시점에 create문이 한번에 날라간다
Update : 영속상태인 엔티티 값 변경, merge()
//삭제 대상 엔티티 조회
Member memberA = em.find(Member.class, “memberA");
memberA.setName("jihun")
조회를 하거나 생성된 영속 엔티티 객체내 변수의 값을 수정하면 다른 펑션을 사용하지 않아도 commit시점에 자동으로 update 쿼리가 날라간다 merge()를 사용할 수 있는데 엔티티내 변수들이 전체 수정되어 세팅되지 않은 변수도 한번에 바뀔수 있어 주의해야한다..!
Remove : remove()
//삭제 대상 엔티티 조회
Member memberA = em.find(Member.class, “memberA");
em.remove(memberA);
영속된 엔티티 객체를 비영속상태로 만들어줌과 동시에 commit 시점에 DELETE 쿼리가 날라간다