JPQL이란?
JPQL(Java Persistence Query Language) 는 JPA (Java Persistence API) 의 일부로 정의된 플랫폼 독립적인 객체지향 쿼리 언어 입니다.
JPQL 은 관계형 데이터베이스의 엔티티에 대한 쿼리를 만드는데 사용됩니다.
SQL 에 크게 영향을 받아 SQL 문과 비슷하지만 데이터베이스의 테이블에 직접 연결되는 것이 아니라 JPA 엔티티에 대해 동작합니다.
그래서 JPQL 의 쿼리에는 테이블이 아닌 엔티티에서 표현하고 있는 컬럼의 이름을 써줘야 합니다.
아래의 Spring을 통한 예시에 나와있습니다.
@Entity
public class UserStatistics {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String host;
private String href;
private String pathName;
private String referrerHost;
private String referrerPath;
private Long visitCount;
private LocalDate date;
}
@Query(value = "SELECT u.pathName as pathName, DATE(u.date) as date, u.visitCount as visitCount " +
"FROM UserStatistics u GROUP BY DATE(u.date), u.pathName, u.visitCount")
List<UserStatisticsDateCount> findVisitCountGroupByDate();
참조
https://en.wikipedia.org/wiki/Java_Persistence_Query_Language
http://www.baeldung.com/spring-data-jpa-query
'Database > JPA & JPQL' 카테고리의 다른 글
JPA JsonMappingException: Infinite recursion (StackOverflowError) - 무한루프 (0) | 2018.08.02 |
---|---|
[JPA] Id Annotation과 return cached data (0) | 2018.07.05 |
Pageable로 Limit 걸기 (0) | 2018.06.23 |