hibenrate hql外置命名查询

外置命名查询
* 在要查询对象对应的映射文件(这里是student.hbm.xml)中采用<query>标签来定义hql

<query name="searchStudents">
<![CDATA[
select s from Student s where s.id<?
]]>
</query>

* 在程序中使用session.getNamedQuery()来得到hql查询串
参见:NameQueryTest.java

package com.wlh.hibernate;  
 
import java.util.Iterator;  
import java.util.List;  
 
import junit.framework.TestCase;  
 
import org.hibernate.Session;  
 
public class NameQueryTest extends TestCase{  
 
    public void testQuery1() {  
        Session session = null;  
        try {  
            session = HibernateUtils.getSession();  
            session.beginTransaction();  
              
            List students=session.getNamedQuery("studentQuery")  
                                 .setParameter(0, 10)                         
                                 .list();  
            for(Iterator iter=students.iterator();iter.hasNext();){  
                Student o=(Student)iter.next();  
                System.out.println("name="+o.getName());  
            }  
            session.getTransaction().commit();  
        }catch(Exception e) {  
            e.printStackTrace();  
            session.getTransaction().rollback();  
        }finally {  
            HibernateUtils.closeSession(session);  
        }  
    }     

你可能感兴趣的:(java,Hibernate,xml,JUnit)