I want to pass values to a NamedQuery. I am selecting from a view and my namedQuery in xml file looks like this:
<sql-query name="findAll">
<return alias="RcvrGroup" class="com.app.rcvp.model.RcvrGroup"/>
<![CDATA[select * from abc.RCVR_GROUP_VW]]>
</sql-query>
and in my DAO I just use findByNamedQuery
public List<RcvrGroup> findAllErrorVar(){
return getHibernateTemplate().findByNamedQuery("findAll");
}
Now, if i have a 'where' clause and my query looks like this:
<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>
How will I execute and pass the values which returns list?
Change the query to use place holder ?
e.g.
<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>
And then pass the value as second parameter.
return getHibernateTemplate().findByNamedQuery("findAll", "rcvr_mgr_value");
If need more than one parameters, you may use Object[]
as second parameter to pass the all parameter values in occurring sequence.