在映射文件中定义命名查询语句
Hibernate允许在映射文件中定义字符串形式的查询语句,例如,可以再Customer.hbm.xml文件中定义如下HQL查询语句:
<query>元素用于定义一个HQL查询语句,它和<class>元素并列.
以上HQL查询语句被命名为"findCustomersByName",在程序中通过Session的getNamedQuery()方法获取该查询语句:
命名查询语句既可以是HQL查询语句,也可以使本地SQL查询语句:
Hibernate允许在映射文件中定义字符串形式的查询语句,例如,可以再Customer.hbm.xml文件中定义如下HQL查询语句:
<hibernate-mapping>
<class name="mypack.Customer" table="CUSTOMERS">
...
</class>
<query name="findCustomersByName"><![CDATA[
from Customer c where c.name like :name
]]></query>
</hibernate-mapping>
<query>元素用于定义一个HQL查询语句,它和<class>元素并列.
以上HQL查询语句被命名为"findCustomersByName",在程序中通过Session的getNamedQuery()方法获取该查询语句:
Query query = session.getNamedQuery("findCustomersByName");
query.setString("name", name);
List result = query.list();
命名查询语句既可以是HQL查询语句,也可以使本地SQL查询语句:
<sql-query name="findCustomersByName" ><![CDATA[
select {c.*} from CUSTOMERS c where c.NAME like :name
]]>
<return alias="c" class="Customer"/>
</sql-query>