我想将值传递给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");
}
现在,如果我有一个&#39;其中&#39;子句和我的查询如下所示:
<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>
我将如何执行并传递返回列表的值?
答案 0 :(得分: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 :(得分:1)
public List<RcvrGroup> findAllErrorVar(String value){
return getHibernateTemplate().findByNamedQueryAndNamedParam("findAll", "rcvr_mgr", value);
}