본문 바로가기
IT/spring

스프링 JPQL (Java Persistence Query Language)

by 뉴코딩맨 2023. 7. 3.
스프링에서 JPQL (Java Persistence Query Language)은 JPA (Java Persistence API)의 일부로, 객체 지향 쿼리 언어입니다. JPQL은 객체를 대상으로 하는 SQL과 유사한 구문을 사용하여 데이터베이스에 대한 쿼리를 작성하는 데 사용됩니다. 스프링 JPQL에 대해 자세히 알아보고, 예제를 통해 설명하겠습니다.

 

 

스프링 JPQL 소개

JPQL은 엔티티 객체를 대상으로 하는 쿼리를 작성할 수 있는 강력하고 유연한 언어입니다. SQL과 유사한 구문을 사용하지만, 데이터베이스 테이블이 아닌 엔티티와 관련된 속성과 관계를 기반으로 쿼리를 작성합니다. JPQL은 영속성 컨텍스트에 의존하여 객체 그래프를 탐색하고 필터링할 수 있으며, 객체 지향적인 방식으로 데이터를 조작할 수 있습니다.
 

스프링 JPQL 예제

다음은 스프링 JPQL을 사용한 예제 코드입니다.
 
@Repository
public class EmployeeRepository {

    @PersistenceContext
    private EntityManager entityManager;

    public List<Employee> findEmployeesByDepartment(String department) {
        String jpql = "SELECT e FROM Employee e WHERE e.department = :department";
        TypedQuery<Employee> query = entityManager.createQuery(jpql, Employee.class);
        query.setParameter("department", department);
        return query.getResultList();
    }

    // 다른 메소드들...
}
 
위의 예제에서는 EmployeeRepository 클래스에서 findEmployeesByDepartment 메소드를 사용하여 부서별로 직원을 조회하는 JPQL을 작성하였습니다. JPQL은 "SELECT e FROM Employee e WHERE e.department = :department"와 같은 형식으로 작성됩니다. 이 쿼리는 Employee 엔티티에서 department 속성이 주어진 부서와 일치하는 직원을 조회합니다. :department는 파라미터로 사용되며, query.setParameter를 통해 값을 설정합니다.

 

 

결론

스프링 JPQL은 JPA를 기반으로 객체 지향적인 방식으로 데이터베이스 쿼리를 작성할 수 있는 강력한 기능을 제공합니다. JPQL은 SQL과 유사한 구문을 사용하지만, 엔티티와 관련된 속성과 관계를 기반으로 쿼리를 작성합니다. 이를 통해 데이터베이스 조작을 더욱 편리하고 유지보수하기 쉬운 방식으로 수행할 수 있습니다.
 

댓글