[JPA] JPQL 소개

  • 정의
    • JPA 를 사용하여 엔티티 객체를 조회하기 위한 객체지향 쿼리언어
  • SQL 과 추상화
    • DB의 테이블과 컬럼이 아닌 엔티티와 그 속성을 대상으로 쿼리를 작성함
    • 특정 DB에 의존 X
    • 데이터베이스 방언을 변경하는 것만으로 다른 DB로의 이전이 가능
  • 코드 간결성
    • 엔티티 직접 조회
    • 묵시적 조인
    • 다형성 지원 등의 장점
@Entity
public class Member {
    @Id
    @GeneratedValue
    private Long id;
    
    @Column(name = "NAME", nullable = false)
    private String name;
  • 테스트 코드
@Autowired
    private EntityManager em;
    @BeforeEach
    void setUp() {
        Member member = new Member();
        member.setName("ipeac");
        em.persist(member);
    }
    
    @Test
    public void findMember() {
        String jpql = "select m from Member m where m.name = 'ipeac'";
        Member member = em.createQuery(jpql, Member.class)
                          .getSingleResult();
    }
  • setUp에서
    insert into member (city, street, zipcode, name) values (NULL, NULL, NULL, 'ipeac');
  • select 시
    select
            m1_0.id,
            m1_0.city,
            m1_0.street,
            m1_0.zipcode,
            m1_0.name 
        from
            member m1_0 
        where
            m1_0.name='ipeac'

Uploaded by N2T

'자바 > JPA' 카테고리의 다른 글

[JPA] 값 타입 컬렉션 제약사항과 대안적 접근 방법  (0) 2023.11.09
[JPA] 객체지향 쿼리  (0) 2023.11.09
[JPA] JPQL 의 기본 문법과 쿼리 API  (0) 2023.11.09
[JPA] JPQL 파라미터 바인딩  (0) 2023.11.09
[JPA] 프로젝션  (0) 2023.11.09