2012-11-08 2 views
0

값을 NamedQuery에 전달하려고합니다. 내가보기에서 선택하고 및 XML 파일 내 namedQuery은 다음과 같다 : 만약 내가 지금hibernate namedQuery

<sql-query name="findAll"> 
     <return alias="RcvrGroup" class="com.app.rcvp.model.RcvrGroup"/> 
     <![CDATA[select * from abc.RCVR_GROUP_VW]]> 
     </sql-query> 

내 DAO에 난 그냥 사용 findByNamedQuery

public List<RcvrGroup> findAllErrorVar(){ 
    return getHibernateTemplate().findByNamedQuery("findAll"); 
} 

는 '어디에'조항과 내 쿼리는 다음과 같습니다.

<sql-query name="findAll"> 
      <return alias="RcvrGroup" class="com.app.rcvp.model.RcvrGroup"/> 
      <![CDATA[select * from abc.RCVR_GROUP_VW where rcvr_mgr=:rcvr_mgr]]> 
      </sql-query> 

목록을 반환하는 값은 어떻게 실행하고 전달합니까?

답변

1

자리 표시자를 사용하도록 쿼리를 변경하십시오. ? 예.

<sql-query name="findAll"> 
     <return alias="RcvrGroup" class="com.app.rcvp.model.RcvrGroup"/> 
     <![CDATA[select * from abc.RCVR_GROUP_VW where rcvr_mgr=?]]> 
     </sql-query> 

그런 다음이 값을 두 번째 매개 변수로 전달하십시오. 둘 이상의 변수가 필요한 경우

return getHibernateTemplate().findByNamedQuery("findAll", "rcvr_mgr_value"); 

,는 시퀀스 발생의 모든 매개 변수 값을 전달하는 제 Object[] 파라미터로서 사용할 수있다.

1
public List<RcvrGroup> findAllErrorVar(String value){ 
    return getHibernateTemplate().findByNamedQueryAndNamedParam("findAll", "rcvr_mgr", value); 
} 
관련 문제