dao
public List findByNamedQuery(String name,Object arg) {
return HibernateSessionFactory.getSession().getNamedQuery(name)
.setParameter("deptno",arg )//命名绑定参数,这是加参数的方法
.list();
}
biz
public void testNamedQuery() {
Transaction tx = null;
try {
tx = HibernateSessionFactory.getSession().beginTransaction();
List<Object[]> result = dao.findByNamedQuery("testNamedQuery",
(byte) 10);
for (Object[] row : result) {
System.out.println(row[0] + "\t" + row[1]);
}
tx.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
test
@Test
public void test6() {
DeptBiz biz = new DeptBiz();
biz.testNamedQuery();
}
可以添加到本类的映射文件。也可以另外创建一个映射文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<query name="findEmpByJob">
<![CDATA[
from Dept d left join d.emps e where d.deptno = :deptno
]]>
</query>
</hibernate-mapping>
然后再把这个文件添加到哈姆雷特的配置文件。