0

NamedQueryに値を渡したい。ビューから選択していますが、xmlファイルの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");
}

ここで、「where」句があり、クエリが次のようになっている場合:

<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>

リストを返す値を実行して渡すにはどうすればよいですか?

4

2 に答える 2

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>

次に、値を 2 番目のパラメーターとして渡します。

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

複数のパラメーターが必要な場合は、2 番目のパラメーターとして使用Object[]して、すべてのパラメーター値を順番に渡すことができます。

于 2012-11-08T20:19:33.543 に答える
1
public List<RcvrGroup> findAllErrorVar(String value){  
    return getHibernateTemplate().findByNamedQueryAndNamedParam("findAll", "rcvr_mgr", value);  
}
于 2012-11-08T20:20:27.150 に答える