首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate在照射文件中定义命名查询语句

2012-10-11 
Hibernate在映射文件中定义命名查询语句Hibernate在映射文件中定义命名查询语句在映射文件中定义命名查询

Hibernate在映射文件中定义命名查询语句
Hibernate在映射文件中定义命名查询语句
在映射文件中定义命名查询语句

Hibernate允许在映射文件中定义字符串形式的查询语句,例如,可以再Customer.hbm.xml文件中定义如下HQL查询语句:
Xml代码

   1. <hibernate-mapping> 
   2.   <class name="mypack.Customer" table="CUSTOMERS"> 
   3.     ... 
   4.   </class> 
   5.  
   6.   <query name="findCustomersByName"><![CDATA[
   7.     from Customer c where c.name like :name
   8.   ]]></query> 
   9.  
  10. </hibernate-mapping> 

<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()方法获取该查询语句:
Java代码

   1. Query query = session.getNamedQuery("findCustomersByName"); 
   2. query.setString("name", name); 
   3. List result = query.list(); 

Query query = session.getNamedQuery("findCustomersByName");
query.setString("name", name);
List result = query.list();


命名查询语句既可以是HQL查询语句,也可以使本地SQL查询语句:
Xml代码

   1. <sql-query name="findCustomersByName" ><![CDATA[
   2.    select {c.*} from CUSTOMERS c where c.NAME like :name
   3.  ]]> 
   4.  <return alias="c" class="Customer"/> 
   5. </sql-query> 

热点排行