🔫
페이징을 구현하며 겪은 문제점과 해결방법, 새로 알게된 점을 기록합니다.
Java Persistence Query Language
JPA(Java Persistence API) 에서 사용하는 객체 지향 쿼리 언어
객체 모델을 대상으로 쿼리를 작성한다.
즉, 데이터베이스의 테이블이 아닌 JPA 엔티티를 기반으로 쿼리를 작성하는 방식
FROM 절이나 WHERE 절에 등장하는 것은 데이터베이스 테이블이 아니라, JPA 엔티티이다.SELECT e FROM Employee e
SELECT e FROM Employee e WHERE e.name = :name
SELECT e FROM Employee e WHERE e.name = :name AND e.age = :age
SELECT e FROM Employee e WHERE e.name LIKE %:name%
SELECT e FROM Employee e ORDER BY e.age DESC
SELECT e FROM Employee e JOIN e.department d WHERE d.name = :departmentName
Spring Data JPA에서는 @Query 어노테이션을 사용해 JPQL 쿼리를 직접 작성
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
@Query("SELECT e FROM Employee e WHERE e.name = :name")
List<Employee> findByName(@Param("name") String name);
}
네이티브 SQL, QueryDSL