2013-08-10 1 views
5

나는 밖으로 매우 이상한 행동을지고있어 내가 좋아하는, 보이는 쿼리를 작성하기 위해 노력하고있어 JPA 2.0org.hibernate.QueryException은 모든 명명 된 매개 변수가 설정되지 않았을 : []

곳 employeId 및 empDepartment 자바 인수

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = :empId and e.empDepartment = :empDepartment"); 
query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

그러나 처음으로 위의 쿼리 나던 작품은 위의 오류를 생성하지만 난 다시 같은 방법을 따라 트리거 할 때 두 번째로 모든 일이이 각각의 모든 시간을 일, 순조롭게 통과하는 긴 값은 , 그 이유는 무엇일까요?

+1

이 문제가 발생한 전체 방법을 보여줄 수 있습니까? – chrylis

+1

'query.setParameter' 호출에는 처음 실행되는 것을 막는'if' 문이 있어야합니다. @chrylis가 제안한대로 전체 방법을 게시 할 수 있습니까? –

답변

0

이 작업을 시도 할 수 :

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?"); 
query.setParameter(1, employeId); 
query.setParameter(2, empDepartment); 

을뿐만 아니라 귀하의 질의 내용에 문제가있을 수있는 것보다이없는 매개 변수의 교체와 함께, 어느 작동하지 않는 경우. 어쩌면 유형이 올바르지 않을 수도 있습니다. 매개 변수 유형은 컨텍스트에서 유추됩니다.

+1

안녕하세요. 답변 주셔서 감사합니다. – user2670113

0
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId=:empId and e.empDepartment=:empDepartment"); 

query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

나는 이유가 무엇인지 모르지만 한 번 나에게 일어났습니다. 이런 식으로 해봐. = : empId와 다른 매개 변수 사이의 공백을 제거하기 만하면됩니다.

관련 문제