2010-05-12 5 views
3

나는 enum 특성을 가진 EntityNamedQueries을 갖는 특성을 가지고 있습니다. 이 NamedQueries 중 하나는 매개 변수로 enum 속성이 즉 JPA에서 NamedQuery 매개 변수로 Enum을 사용하는 방법

SELECT m FROM Message m WHERE m.status = :status

내가 RU N I는 다음과 같은 오류가 쿼리에 시도

;

Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class my.package.Status for parameter status with expected type of class my.package.Status from query string SELECT m FROM Message m WHERE m.status = :status.

나는

이 어떻게 상단 링크

을 사용하고 있습니다? JPA를 어떻게하면 좋을까요?

+0

http://stackoverflow.com/questions/2403121/collection-containsenum-value-in-hql/2403196#2403196 – ewernli

+0

와 (과) 비슷한 모양의 최대 절전 모드로 전환되었습니다. – n002213f

답변

2

열거 형 개체는 다른 개체와 마찬가지로 쿼리 매개 변수로 사용할 수 있습니다. 그러나 귀하는 질의를해야합니다 :

SELECT m FROM Message m WHERE m.status = :status 

또한 엔티티 정의에 @Enumerated가 추가 되었습니까?

+0

그 질문에 오타가 있었는데 쿼리는 당신이 언급 한대로 @EnumeratedType은 @Enumerated를 의미합니다. 예 – n002213f

+0

TopLink/EclipseLink가 아닌 최대 절전 모드를 사용하고 있습니다 - 어쩌면 이것이 몇 가지 버그입니다 ... –

관련 문제