關(guān)于HQL查詢,我們可以結(jié)合hibernate的API文檔,重點圍繞org.hibernate.Query接口,分析其方法,此接口的實例對象是通過通過session、對象的creatQuery(String hql)方法得到的。我這里要分析HQL的select子句,當然要想深入HQL查詢,我們就必須了解hibernate緩存的知識。

一、選擇——Select子句查詢返回對象的討論

為什么只說Select子句,因為我們使用的hibernate框架是基于java語言環(huán)境下進行開發(fā)的,也就是說hibernate是將數(shù)據(jù)庫進行了對象化,那么我們使用Select語句查詢到的記錄,返回的是什么對象,這個很讓人感興趣。

首先我們看看在只是用from子句的情況:

萬碼學(xué)堂,電腦培訓(xùn),計算機培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

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();        //獲取注冊服務(wù)對象(該對象中包含hibernate.cfg.xml中的<properties>和<maping>信息
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();        //獲取sessionFactory對象,通過sessionFactory對象讀取hibernate.cfg.xml文檔信息,并通過<mapping>標簽加載hbm.xml文件信息
        sessionFactory=config.