关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session、对象的creatQuery(String hql)方法得到的。我这里要分析HQL的select子句,当然要想深入HQL查询,我们就必须了解hibernate缓存的知识。

一、选择——Select子句查询返回对象的讨论

为什么只说Select子句,因为我们使用的hibernate框架是基于java语言环境下进行开发的,也就是说hibernate是将数据库进行了对象化,那么我们使用Select语句查询到的记录,返回的是什么对象,这个很让人感兴趣。

首先我们看看在只是用from子句的情况:

万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

package com.third;import java.util.Iterator;import java.util.List;import org.hibernate.Query;import org.hibernate.ScrollableResults;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.third.Dao2.Students2;public class Test3 {    private static SessionFactory sessionFactory;    private static Session session;    private static Transaction transaction;
    @Before    public void init(){        //先获取配置对象,匹配hibernate.cfg.xml文件
        Configuration config=new Configuration().configure();        //获取注册服务对象(该对象中包含hibernate.cfg.xml中的<properties>和<maping>信息
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();        //获取sessionFactory对象,通过sessionFactory对象读取hibernate.cfg.xml文档信息,并通过<mapping>标签加载hbm.xml文件信息
        sessionFactory=config.