2012-11-09 2 views
0

I는 I 2 개 파라미터를 아래와 같이 건네 따라 자른 namedQuery을 가지고org.hibernate.QueryException : 예상 위치 파라미터

ArrayList idName= new ArrayList(); 
    idName.add(id); --int 
    idName.add(ABC); --String 

다음과 같이 I는 namedQuery이 객체를 전달한다

return getHibernateTemplate().findByNamedQuery("findIDAndName", idName); 

및 내가 응용 프로그램을 실행할 때 내 hbm.xml이 쿼리를 가지고,

<sql-query name="findIDAndName"> 
     <return alias="IdNamePmt" class="com.app.Grp.model.IdNamePmt"/> 
     <![CDATA[select * from PMT.CSE_NME_VW where PMT_ID=? and PMT_NAME=?]]> 
    </sql-query> 

나는 아래의 오류가 발생합니다 :

org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: [[7, ABC]] [select * from PMT.CSE_NME_VW where PMT_ID=? and PMT_NAME=?] 
    at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:367) 
    at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:228) 
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:172) 

2 개의 매개 변수를 전달했으며 'where'절도 2 개의 매개 변수를 필요로합니다. 뭐가 잘못 되었 니? 모든 사례가 높이 평가됩니까?

답변

0

는 나는 그것이 도움이되지 않았다

return getHibernateTemplate().findByNamedQuery("findIDAndName", idName.toArray()); 
+0

해야한다 생각합니다. 어떤예요? – JNPW

+0

'findByNamedQuery()'의 두 번째 인수는 배열이 아니고리스트 여야합니다. 아직도 예외가 있습니까? 오류 메시지 란 무엇입니까? – Guillaume