天天看點

Hibernate-ORM:08.Hibernate中的投影查詢------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑-------------一,目錄:二,解釋什麼是投影查詢:三,傳回Object單個對象(可以是強類型,無所謂)四,傳回Object數組五,傳回自定義的對象

------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑-------------

本篇部落格将叙述hibernate中的投影查詢

一,目錄:

  1.解釋什麼是投影查詢

  2.傳回Object單個對象(可以是強類型,無所謂)

  3.傳回Object數組

  4.傳回自定義的對象

二,解釋什麼是投影查詢:

  sql語句: select name,age from userinfo;

  如果用hibernate中就不是這麼表示,select後面的列名就是需要投影的列,通過特定的寫法,直接傳回可以操作的對象

三,傳回Object單個對象(可以是強類型,無所謂)

@Test
    /*投影成object類型*/
    public void t01TouyingObject(){
        String hql="select name from Teacher";
        List<Object> list = session.createQuery(hql).list();
        for (Object t:list){
            System.out.println(t);
        }
    }      

四,傳回Object數組

@Test
    /*投影成object[]類型*/
    public void t02TouyingObjectArr(){
        String hql="select name,sal from Teacher";
        List<Object[]> list = session.createQuery(hql).list();
        for (Object[] t:list){
            System.out.println(t[0]);
            System.out.println(t[1]);
        }
    }      

五,傳回自定義的對象

  值得注意的是,必須有對應的構造方法:

@Test
    /*投影成自定義對象類型*/
    public void t03TouyingObjectMyself(){
        String hql="select new Teacher(name,sal) from Teacher";
        List<Teacher> list = session.createQuery(hql).list();
        for (Teacher t:list){
            System.out.println(t);
        }
    }