hibernate hql语句 投影查询的三种方式
生活随笔
收集整理的這篇文章主要介紹了
hibernate hql语句 投影查询的三种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
投影查詢有三種方式:
1.直接查 2.查詢返回對象 3.查詢返回Map鍵值對 ======================================================= //投影查詢方法1:直接使用select 屬性 ?from 類名的方式查詢 public void list1(){ Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession(); //開啟事務 Transaction tx = session.beginTransaction(); Query query = session.createQuery("select name,title from Guestbook"); List<Object[]> list = query.list(); for(Object[] o:list){ System.out.println("姓名:"+o[0]); } tx.commit(); } /* ?* 投影查詢方法2 ?--- ? 使用select new 類名(屬性名...) from 類名的方式,返回實體類 ?* 注意:如何使用實體類的方式,那么必須在實體類中有這樣的構造方法 ?*/ public void list2(){ Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession(); //開啟事務 Transaction tx = session.beginTransaction(); Query query = session.createQuery("select new Guestbook(id,name,title) from Guestbook"); List<Guestbook> list = query.list(); for(Guestbook gb:list){ System.out.println("編號:"+gb.getId()+",姓名:"+gb.getName()+",標題:"+gb.getTitle()); } tx.commit(); } /* ?* 投影查詢方法3 ?--- ? 使用select new Map(屬性名...) from 類名的方式,返回Map集合,通過下標獲取屬性值 ?* 注意:如何使用實體類的方式,那么必須在實體類中有這樣的構造方法 ?*/ public void list3(){ Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession(); //開啟事務 Transaction tx = session.beginTransaction(); //在遍歷Map是就可以根據編號獲取屬性值 //Query query = session.createQuery("select new Map(id,name,title) from Guestbook"); //使用屬性的別名,在遍歷Map是就可以根據名稱獲取屬性值 Query query = session.createQuery("select new Map(gb.id as id,gb.name as name,gb.title as title) from Guestbook gb"); List<Map> list = query.list(); for(Map m:list){ //注意:這里的編號不是Integer類型,而是String類型 System.out.println("編號:"+m.get("id")+",姓名:"+m.get("name")+",標題:"+m.get("title")); } tx.commit(); }轉載于:https://www.cnblogs.com/xusongfeng/p/9165674.html
總結
以上是生活随笔為你收集整理的hibernate hql语句 投影查询的三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python format
- 下一篇: 6-11数据库mysql初始