Hibernate 返回结果list对象

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:
1.查询全部字段的情况下,如"from 实体类",list中封装的对象为实体类本身,各属性都将得到填充。
2.只查询一个字段,默认情况下,list中封装的是Object对象。
3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。

对于后两种情况,用标签遍历时不太方便,因为无法直接转换成实体类的对象。比较简单的解决方法是:

の:在hql中使用select new 包名.类名(属性1,属性2……) from 实体类,同时在实体类中添加带参的构造方法,参数的个数和顺序与(属性1,属性2……) 保持一致,这样我们得到的list中存放的依然是实体类的对象,所查询到的属性得到了填充,使用起来更为方便。

  の:hql查询多表部分字段,select new 包名.表1实体类名(表1.属性1,表2.属性2……) from 表1实体类,表2实体类 where 表1.ID=表2.ID(即相关联的字段),同时在要返回的表1实体类中添加表2的属性和带参的构造方法,参数的个数和顺序与(表1.属性1,表2.属性 2……) 保持一致

例如要查询Problem 中的pid,score,title,totalAccept,totalSubmission,unSee

  1. public class Problem {  
  2.     private int pid;  
  3.     private int score;  
  4.     private int timeLimit;  
  5.     private int memoryLimit;  
  6.     private int totalAccept;  
  7.     private int totalSubmission;  
  8.     private int unSee;  
  9.     private String title;  
  10.     private String description;  
  11.     private String input;  
  12.     private String output;  
  13.       
  14.     public Problem(int pid, int score,String title, int totalAccept, int totalSubmission,  
  15.              int unSee) {  
  16.         super();  
  17.         this.pid = pid;  
  18.         this.score = score;  
  19.         this.totalAccept = totalAccept;  
  20.         this.totalSubmission = totalSubmission;  
  21.         this.unSee = unSee;  
  22.         this.title = title;  
  23.     }  
  24.     //省略getter 和 setter   
  25. }  
查询语句如下
  1.       Query query=session.createQuery("select new Problem(pid,score,title,totalAccept,totalSubmission,unSee) from Problem order by pid");  
  2.         //query.setFirstResult(firstResult); //分页函数   
  3.         //query.setMaxResults(maxResutl);   
  4.       
  5.         List<Problem> problems=query.list();//返回的还是Problem对象
英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南 本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。 阅读详情

相关推荐

中国主要湖泊水库面状矢量边界图层ArcGIS应用实战:从数据获取到专题图制作

本文详细介绍了中国主要湖泊水库面状矢量边界图层在ArcGIS中的实战应用,从数据获取到专题图制作的全流程。涵盖官方数据源、科研机构共享数据及商业平台的选择,以及ArcGIS中的数据处理、拓扑错误修正和专题图设计技巧,帮助用户高效完成湖泊水库的空间分析与可视化。

weixin_33672400的博客 236

hibernate hql 查询指定字段并获取结果

hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查询全部字段的情况下,如"from 实体类",list中封装的对象为实体类本身,各属性都将得到填充。 2.只查询一个字段,默认情况下,list中封装的是Object对象。 3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所

左手程序,右手写诗… 5608

2023年下半年网络工程师案例分析真题答案解析

R1] ip route-static 0.0.0.0 0.0.0.0 GigabitEthemet2/0/1 (3) track (4) R1 to R2 //配置R1的缺省路由,联动BFD使得R1到2的流量优先走R1->S1->R2链路,当此链路发生故障时,流量切换到R1->R3->R2链路上。当同一VLAN内也需要网络隔离时,我们可采用交换机的(2)功能,若在配置了二层隔离后,部分主机有互通的需求,则可在需求主机的网关上配置(3)功能。不需要,MAC地址是数据链路层封装以太帧的地址标识。

鹿鸣天涯 708

Hibernate hql 查询指定字段并获取结果

1. 查询整个映射对象所有字段 Java代码      //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段                String hql = "from Users";                Query query = session.createQuery(hql);                  

Genge 5116

Spring Data JPA 命名参考以及JPQL语句参考

Spring Data JPA 命名参考以及JPQL语句参考 Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2 Is, Equals findBy...

Be_insighted的博客 443

关于Hibernate、NHibernateHQL 连接字段,字段拼接查询问题

假若您遇到了这样的数据库查询问题: 网上看到的问题: 在sql中可以select userName(select t.lastname || ''|| t.firstname as userName from user_info t) 可以把lastname和firstname合在一起变成一个字段userName 但是在hql中不知道 连接 orcale,db2 用 ||,sqlserve

xiezhijie的专栏 4011

Hibernate query.list()

Hibernate中,用hql语句查询实体类,采用List方法的返回结果为一个List,该List中封装的对象分为三种情况。

南_茗的博客 1275

java list 查找find_java 如何从hibernate查询时返回List类型结果中取值 | 学步园

问题描述:希望从数据库中查询一条数据并获取各字段值。但是hibernate自动生成的代码UserDAO.java文件中查询后返回的是一个List类型,我怎么也取不出这里面的字段值。使用Eclipse导入hibernate并生成的UserDAO.java文件部分代码如下:public List findByProperty(String propertyName, Object value) {lo...

weixin_30768979的博客 449

Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List

package com.ucap.netcheck.dao.impl; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import o

涂作权的博客 4180

hibernate查询返回list无法转换对象

有这样一段代码,返回list无法转换成User对象 [code="java"] public List getStoreList(final int pageNo,final int pageSize,final String role,final String check) { //type is cpUser 商品type String hql="";...

zcw_java的专栏 362

hibernate查询结果list对象一样问题

原因是对象类设置的id和数据库中对应表的id不一致,导致hibernate识别对象时发生错误,返回一样的对象。调用hibernate的query.list()方法时,返回list对象为同一个对象。修改:复合主键增加tid列以后,返回结果正确。

csdnglm的博客 301

hibernate执行的SQL语句返回list集合用Object[]接收遍历

做项目的时候遇到这样的问题,hibernate执行SQL语句返回来的list集合调试断点的时候检查list集合有值,但是返回action遍历的时候在list.get(i);这句话时报异常,调试结果list集合为空,查找到的结果就是用SQL语句不能自动转换成bean对象,所以要转换成数组形式在进行遍历,这时返回list集合里的值就可以遍历出来了. 偷个懒把别人的代码粘过来了,还有...

程序员一代码搬运工 122

使用hibernate应该注意的事项

1.在hibernate中使用Query对象查询,将结果转换成List时,如果查询结果为空,返回不是对象,而是元素为0的List对象。这一点在编程时需要注意。 演示代码,结果为空时依然返回List对象,元素为0个。 [code="java"] public List getUsermainList(int memberId) { String hql = "from Me...

带着梦想飞翔 175

java调用sql返回list_Hibernate执行原生SQL返回List<Map>类型结果

我是学java出身的,web是我主要一块;在做项目的时候最让人别扭的就是hibernate查询大都是查询出List(T指代对应实体类)类型如果这时候我用的联合查询,那么返回都就是List , 这样的结果集让我苦恼了很久,于是我萌发了使用spring提供的JdbcTemlate来 查询出 List>的念头,方法虽然可行,可惜的是spring偌大一个框架,居然不提供jdbc分页。。。。无奈之下我...

weixin_33167456的博客 873

java 判断记录集字段_Hibernate hql 查询指定字段并获取结果

1. 查询整个映射对象所有字段//直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段String hql = "from Users";Query query = session.createQuery(hql);List users = query.list();for(Users user : users){System.out.println(user.getName() +...

weixin_28973649的博客 278

hibernatelist和iterate的区别

一。Hibernate的N+1条SQL查询问题-------Iterate ibernate使用session.createQuery(hql)查询数据的时候,有两种查询方式: 1、一种是只查询一次,将所有要查询的数据都查询出来,后面直接取数据就可以了; 获取方式:session.createQuery(hql).list()。 一次性加载的数据多,效率低,用于例如...

weixin_30778805的博客 154

springboot hibernate jpa createNativeQuery使用原生sql查询并转换为pojo的model对象,方便好用

先把entityManager.createNativeQuery生成的jpa接口的Query 强转为hibernateQuery 的query 然后就可以调用hibernate的方法,设置属性,返回list结果就是Map<String,Object>的有列名称columnName的对象 然后用jackson的ObjectMapper().convertValue把map转换为po...

老专家的博客 4209

让JPA的Query返回Map对象 javax.persistence.Query.unwrap

让JPA的Query返回Map对象 在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一个对象数组返回。 常见的用法是这样的: Java代码 publicvoidtestNative...

2637

HQL查询——查询返回对象类型分析

关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session、对象的creatQuery(String hql)方法得到的。我这里要分析HQL的select子句,当然要想深入HQL查询,我们就必须了解hibernate缓存的知识。 一、选择——Select子句查询返回对象的讨论 为什么只说S

小小小程序员的博客 318

hibernate 通过sql返回list遍历

在做一个查询业务时,我需要写入查询语句,返回list 我要取出list中的object的两数据如:测试数据、外包客服内容通过上网查找到hql的情况:**在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查询全部字段的情况下,如”from 实体类”,list中封装的对象为实体类本身,各属性都将得到填充。 2

人生所向,皆是美好 5743

Hibernate的Query的三种方法比较

List()    这个方法返回一个list对象,可以按照未知进行随机访问,采用这种方式要求Hibernate将所有的数据都转换成java实体对象,而不管是否用到了其中所有的对象,所以,在只有部分对象被使用时候会造成资源浪费iterator()   这个方法返回Iterator对象,只能按照从前向后顺序访问,优点是不用一次读取所有的数据都转换成java对象,避免资源浪费uniqueResu

我的世界我的梦 1705
上一篇: SpringMVC原理
下一篇: OpenSessionInViewFilter
q5545q
博客等级 码龄14年 2粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值