打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Hibernate HQL查询
HQL查询语言(面向对象的语言,总结得好全)
HQL知识
Hibernate 笔记 HQL查询(一)单属性,多属性查询
hql语言条件查询(三)
在Hibernate中Query的uniqueResult查询
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服