关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session、对象的creatQuery(String hql)方法得到的。我这里要分析HQL的select子句,当然要想深入HQL查询,我们就必须了解hibernate缓存的知识。
一、选择——Select子句查询返回对象的讨论
为什么只说Select子句,因为我们使用的hibernate框架是基于java语言环境下进行开发的,也就是说hibernate是将数据库进行了对象化,那么我们使用Select语句查询到的记录,返回的是什么对象,这个很让人感兴趣。
首先我们看看在只是用from子句的情况:
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.