작성
·
286
1
책 388쪽 날짜 예제를 보면 m.createDate = {d '2012-03-24'}로 DATE타입을 명시하면 된다고 나와있는데
List<Member> resultList = em.createQuery(
"SELECT m" +
" FROM Member m" +
" WHERE m.birth > {d'2000-01-1'}",
Member.class
).getResultList();
이러한 코드를 작성하고 코드를 돌리니까
java.lang.IllegalArgumentException: org.hibernate.QueryException: unexpected char: '{' [SELECT m FROM JPA.QueryPractice.domain.Member m WHERE m.birth > {d'2000-01-1'}]
이러한 오류가 발생하였고 이 오류에서는 "{"라는 문자를 인식할 수 없다고 나오는데 그러면 어떻게 날짜 타입을 작성해야 하는건가요??
List<Member> resultList = em.createQuery(
"SELECT m" +
" FROM Member m" +
" WHERE m.birth > '2000-01-01'",
Member.class
).getResultList();
이 코드는 정상적으로 실행됩니다
답변 1
1
안녕하세요. avenue님, 공식 서포터즈 David입니다.
JPA의 구현체인 하이버네이트에서 해당 문법을 지원하지 않는 것으로 보입니다.
질문자분께서 작성하신 대로 쿼리하시면 되고, 해당 문법을 사용하시려면 JPA의 다른 구현체인 EclipseLink를 사용하시면 됩니다.
참고
* https://stackoverflow.com/a/19688753/10709777
감사합니다.