본문 바로가기
Data Base/JPA

[JPA] : JPA 간단 개발과 JPQL 확인하기

by 오주현 2022. 3. 20.
반응형

데이터베이스에 데이터를 넣어 테스트를 하는 강의를 진행했다.

@Entity                   
public class Member {     
    @Id                   
    private Long id;      
    private String name;

객체와 테이블을 생성하고 매핑을 먼저 해준다.

Entity는 JPA가 관리할 객체이고 Id는 PK설정으로 데이터베이스 PK와 매핑된다.

 

EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
// 팩토리는웹 서버가 올라오는 시점에 DB당 하나만 생성된다.

EntityManager em = emf.createEntityManager();
// 고객의 요청이 올 때 마다 썼다가. 버렸다가. 반복해서 동작한다. 때문에 쓰레드간에 공유를 하면 안 된다. 사용 후 꼭 버려야한다.

EntityTransaction tx = em.getTransaction();
tx.begin(); //JPA 모든 데이터 변경은 트랜잭션 안에서 진행해야 한다.

주석을 참고하자.

 

try {

        //Member findMember = em.find(Member.class, 1L);
        List<Member> result = em.createQuery("select m  from Member as m", Member.class)
                .setFirstResult(5)
                .setMaxResults(8)
                .getResultList(); //Member 객체를 대상으로 쿼리를 한다. 즉, 대상이 테이블이 아닌 객체이다. JPQL

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

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

}

JPQL에 대해서도 간단한 설명을 들었다.

 

JPQL은 엔티티 객체를 대상으로 쿼리를 수행하고 SQL은 데이터베이스 테이블을 대상으로 쿼리를 수행한다는 차이가 있다. 즉, JPQL은 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리이다.

 

이 JPQL은 범위가 좀 넓어서 강의 뒤에서 다시 다룬다고 한다.


자바 ORM 표준 JPA 프로그래밍 - 기본편을 참고하여 공부하였습니다.

반응형

댓글