JPA 단일 조회, 전체 조회 ,삭제

유신·2021년 5월 25일

스프링

목록 보기
1/8


public class hellojpa {
    public static void main(String[] args){

        //엔티티 매니저  팩토리는 하나만 생성해서 애플리케이션 전체에서 공유 .
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");

        //엔티티 매니저는 쓰레드간에 공유X (사용하고 버려야 한다)
        EntityManager em = emf.createEntityManager();


        EntityTransaction tx = em.getTransaction();
        tx.begin();

        try{

            //전체 회원 조회 -- 검색 쿼리 생성
            List<Member> result = em.createQuery("select m from Member as m",Member.class)
                    //.setFirstResult(1) // 페이징기법
                    //.setMaxResults(10) // 페이징 기법
                    .getResultList(); // 리스트 가져오는법
            // 단일 회원 조회
            Member result2 = em.find(Member.class, 101L);

            //회원삭제
            em.remove(result2);

            //엔티티를 영속화 시킨다. (엔티티를 영구 저장하는 환경에 보낸다?)
            em.persist(result2);


            for (Member member1 : result){
                System.out.println("member.name="+member1.getName());
            }

//            Member findMember = em.find(Member.class, 1L);
//            findMember.setName("yushin kim");

//            System.out.println("findMember.id = "+findMember.getId());
//            System.out.println("findMember.name = "+findMember.getName());


            tx.commit(); // comit 필수! 커밋을 해야 JPA가 인식을 함

        }
        catch(Exception e){
            tx.rollback();
        }
        finally {
            em.close();
        }
        //close
        emf.close();
    }
}

profile
초보개발자

0개의 댓글