Hibernate学习32 -- Hibernate查询语言(HQL)6 -- 外置命名查询

来源:互联网 发布:json 值里面有双引号 编辑:程序博客网 时间:2024/05/29 08:30

外置命名查询:

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

* 在程序中采用session.getNamedQuery()方法得到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);

       }

    }  

}