개념) JPQL

dong.___.ju·2025년 5월 3일

개념

목록 보기
2/3

JPQL이란?

JPQL은 JPA에서 사용하는 객체지향 쿼리 언어이다.
SQL과 문법이 비슷하지만, 테이블이 아닌 엔티티 객체를 대상으로 쿼리를 작성한다는 점이 특징이며, SQL과 달리 INSERT 문이 없다.
JPQL을 사용하면 데이터베이스에 독립적으로 쿼리를 작성할 수 있다.


JPQL에서의 CRUD

JPQL은 SQL이랑 문법이 비슷한데, 테이블이 아니라 엔티티(객체)를 대상으로 쿼리를 작성한다는 게 가장 큰 차이점이다.

  • Create (생성)
    새로운 엔티티(객체)를 데이터베이스에 저장할 때는 persist() 메서드를 사용한다.

    javaem.persist(student);
    예를 들어, Student 엔티티 객체를 만들어서 persist하면 DB에 저장된다.

  • Read (조회)
    JPQL로 데이터를 조회할 때는 SELECT문을 사용한다.
    SQL이랑 비슷하지만 테이블명이 아니라 엔티티명을 쓴다.

    java
    SELECT s FROM Student s WHERE s.major = '컴퓨터공학'
    이렇게 쓰면 컴퓨터공학 전공 학생들을 전부 조회할 수 있다.

  • Update (수정)
    JPQL에서는 객체의 값을 바꾼 다음 트랜잭션을 커밋하면 자동으로 DB에 반영된다.

    java
    student.setMajor("전자공학");

  • Delete (삭제)
    삭제할 때는 remove() 메서드를 사용한다.

    java
    em.remove(student);
    또는 JPQL로 직접 delete 쿼리를 작성할 수도 있다.

JPQL은 SQL이랑 문법이 거의 비슷하지만 테이블 대신 엔티티를 다루고, JPA에서 객체지향적으로 데이터를 관리할 때 꼭 필요한 쿼리 언어다.

1개의 댓글

comment-user-thumbnail
2025년 5월 3일

저도 이런식으로 좀 더 꼼꼼하게 하고 싶었었는데! 너무 잘 작성하셨어요!!

답글 달기