Hibernate HQL语言外置命名查询实例



Hibernate HQL语言外置命名查询实例。

外置命名查询:

* 在映射文件中采用<query>标签来定义hql

* 在程序中采用session.getNamedQuery()方法得到hql查询串

 HQL语言外置命名查询例子代码如下:

映射文件:

<!—

name属性值必须是唯一,可以放在任意映射文件,

        建议放在一个专门放命名查询的映射文件

    –>

    <query name=”searchStudents”>

       <![CDATA[

           SELECT s FROM Student s where s.id<?

       ]]>

    </query>

客户端测试代码:

/**

 * 外置命名查询

 * @author Administrator

 */

public class NameQueryTest extends TestCase {

    public void testQuery1() {


       Session session = null;

       try {

           session = HibernateUtils.getSession();

           session.beginTransaction();

           List students = session.getNamedQuery(“searchStudents”)

                            .setParameter(0, 10)

                            .list();

           for (Iterator iter=students.iterator(); iter.hasNext();) {

              Student student = (Student)iter.next();

              System.out.println(student.getName());

           }

           session.getTransaction().commit();

       }catch(Exception e) {

           e.printStackTrace();

           session.getTransaction().rollback();

       }finally {

           HibernateUtils.closeSession(session);

       }

    }

}