2011-02-06 11 views
1

Eclipselink JPA 2.0을 사용하여 날짜 범위 쿼리를 작성하려고하지만 모든 시도가 실패합니다. 네이티브 SQL-쿼리는 다음과 같습니다Eclipselink 날짜 범위 쿼리 (그룹화 기준)

SELECT booked FROM household_bookings WHERE YEAR(booked) = 2011 GROUP BY YEAR(booked) 

하지만 난 나를 위해 필요한 모든 일을 백그라운드로는 EclipseLink를 가진 경우, 기본 쿼리를하고 싶지 않아. 나는 이것을 시도했다 :

SELECT b FROM Booking b WHERE YEAR(b.booked) = '" + year + "' 

여기서 'year'는 Date Object이다. 그러나 이것은 "예기치 않은 토큰을 [(]".

나는 또한 ExpressionBuilder을 시도했지만 같은 오류 ("예기치 않은 토큰 [(]").

에 실행 날짜를 수행하는 방법에 대한 자습서가 있습니까 반환 은 EclipseLink로 쿼리의 범위? 당신이 정의하는 FUNC 기능을 사용할 필요는 EclipseLink에 있도록

답변

2

는 JPQL에 정의 YEAR 기능이 없습니다.

"SELECT b FROM Booking b WHERE FUNC('YEAR', b.booked) = '" + year + "'" 

을 표현하면이 오류를 얻을 수 없다 ("Unexcpected 토큰 [(] ")) 토큰이 없기 때문에? 데이터베이스에서이 오류가 발생합니까? 어쨌든 Expression에서는 일부 데이터베이스에서 사용할 수있는 getFunction() 및 datePart()를 정의합니다.