findByNamedQuery 三个从栽入方法

来源:互联网 发布:海岛奇兵雷达升级数据 编辑:程序博客网 时间:2024/06/04 00:56

来自:http://www.01yun.com/other_question/20121214/10697.html

findByNamedQuery有三个从栽入方法:
findByNamedQuery(String queryName);
findByNamedQuery(String queryName,Object value);
findByNamedQuery(String queryName,Object values);
查看API说的很清楚 :
Execute a named query for persistent instances. A named query is defined in a Hibernate mapping file.
意思说所 :
通过 queryName 查询数据库中的持久对象,而queyName是定义在此对象对应的hibernate的映射文件中的!
定义语法如下:
<query name="定义查询名">
<![定义查询语句]]>
</query>
例1:findByNamedQuery(String queryName);
<query name="all">
<![from User]]>
</query>
findByNamedQuery("all");

例2: findByNamedQuery(String queryName,Object value);
<query name="byname">
<![from User where u.name = ?]]>
</query>

findByNamedQuery("byname","tiger");

例3: findByNamedQuery(String queryName,Object values);
<query name="byNameAndAge">
<![from User where u.name = ? and u.age = ?]]>
</query>
findByNamedQuery("byNameAndAge",new Object[]{"tiger",18});

http://www.01yun.com/other_question/20121214/10697.html
HibernateTemplate 还有一个方法 :
findByNamedQueryAndNamedParam(String queryName,String[] paramNames, Object[] values)

这是映射文件就要用: 而不是?
如:
<query name="byNameAndAge">
<![from User where u.name = :name and u.age = :age]]>
</query>