命名查询是在程序启动的时候解析hql成sql,在以后用的时候就用解析好的,不用再次解析
Employee.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.model">
<class name="Employee" table="employee">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<many-to-one name="department" class="Department" column="dId"></many-to-one>
</class>
<query name="qu">
from Employee
</query>
</hibernate-mapping>
单元测试:
@Test
public void t(){
Session session = HibernateUtil.getInstance().getSession();
session.beginTransaction();
List<Employee> list = session.getNamedQuery("qu").list();
session.getTransaction().commit();
session.close();
}