인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

avenue님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA 책 - 10장 조건식 타입표현 (날짜)

작성

·

294

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

David님의 프로필 이미지

안녕하세요. avenue님, 공식 서포터즈 David입니다.

JPA의 구현체인 하이버네이트에서 해당 문법을 지원하지 않는 것으로 보입니다.

질문자분께서 작성하신 대로 쿼리하시면 되고, 해당 문법을 사용하시려면 JPA의 다른 구현체인 EclipseLink를 사용하시면 됩니다.

참고

* https://stackoverflow.com/a/19688753/10709777

감사합니다.

avenue님의 프로필 이미지

작성한 질문수

질문하기