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

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

avenue님의 프로필 이미지
avenue

작성한 질문수

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

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

작성

·

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

감사합니다.

avenue님의 프로필 이미지
avenue

작성한 질문수

질문하기