Hibernate使用sql语句查询,返回实体类型的方法及注意事项

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中。Hibernate中,可以自动帮我们注入到Hibernate 甚至是 非 Hibernate 类型当中。
 
Java代码  
String sql = "select * from users";  

SQLQuery sqluery = session.createSQLQuery(sql).addEntity(Users.class);  


List<Users> list = new ArrayList<Users>();
list = sqluery.list();  

System.out.println(list.get(0).getUsername());

注意:如果想要访问list中的值,必须在声明List时,加入实体对象,即List<Users>,如果没有<Users>,编译器就无法将POJO中数据按实体类封装,也就无法通过lsit直接访问数据了


注册到非 Hibernate pojo 中:
Java代码  
sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")  
        .setResultTransformer(Transformers.aliasToBean(CatDTO.class))  
 
返回多个实体
Java代码  
sess.createSQLQuery("SELECT {cat.*}, {mother.*}  FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID")  
 .addEntity("cat", Cat.class)  
 .addEntity("mother", Mother.class)  
  
{cat.*},   的cat   就是 addEntity(“ 里面的 cat 名称。
 
Hibernate使用SQL语句多表查询,并返回类json键值对 问题描述:在Hibernate5中,使用原生SQL进行多表查询,并将其结果通过Struts2返回给前台的ajax请求、bootstrap-table请求。 1. 数据库 数据库的表格数据大致如下: Invest表: id projectname investorid investmoney 1 SSFW 1 100 2 Universe 1 150 3 Universe... 阅读详情

相关推荐

手把手教你解决Kernel panic报错:init找不到的5种排查方法(附NFS挂载实战)

本文深入解析了Linux系统启动时出现“Kernel panic - not syncing: No working init found”报错的根本原因,并提供了五种系统性的排查方法。文章结合NFS挂载根文件系统的实战场景,详细阐述了从动态链接库依赖、内核引导参数、NFS权限配置、文件系统完整性到内核配置干扰的完整排查路径,帮助开发者快速定位并解决这一常见的系统启动故障。

weixin_29159995的博客 159

Hibernate读书笔记-----SQL查询

Hibernate除了支持HQL查询外,还支持原生SQL查询。 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。 执行SQL查询步骤如下: 1、获取HibernateSession对象 2、编写SQL语句 3、通过Session的createSQLQuery方...

hududumo 308

手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南

本文提供了手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南。针对国内用户网络不稳定导致自动下载失败的问题,文章核心介绍了如何从错误信息中获取下载链接,使用浏览器或下载工具完成手动下载,并通过指定本地文件路径和参数在R中成功安装。该方法同样适用于SeuratData包中的其他数据集,是单细胞分析入门的必备生存技能。

weixin_29054399的博客 152

Hibernate sql查询结果转换新建的实体方法

sql查询结果转换新建的实体方法

m0_60349254的博客 281

hibernate 的createSQLQuery的几种用法(转)

使用SQLQuery 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。最简单的情况下,我们可以采用以下形式: List cats = sess.createSQLQuery( " select * from cats " ).addEntity(Cat. class ).list(); 这个查询指定了:

xwnxwn的专栏 1102

使用原生SQL返回实体类具体实现详情

注:可以直接复制粘贴,欢迎提出各种问题,谢谢! 因为网上查询大都是相同的,自己做时发现很多不懂,摸索了很久才弄懂,所以写了这个例子,比较容易看懂吧。 使用原生SQL查询并将结果返回实体中: (1)因为原生SQL返回使用SQLQuery的createSqlQuery();返回的是list,所以在DAO层(数据操作),创建List方法; (2)使用SQLQuery的createSqlQue

夜影的世界 3112

hibernate中通过查询语句返回实体对象

在dao层经常使用查询语句找到数据库中表中记录,但实际操作时往往希望返回的是实体对象集合而不是值对象数组集合。 根据目前的学习,有以下几种方法: 1.hql语句返回结果为实体对象集合;所以能用 hql语句尽量用hql语句 2原生sql语句查询List cats = this.getSession().createSQLQuery( " select * from cats " ).addE

好好工作,努力跳槽 2762

Hibernate使用原生SQL查询

Hibernate使用原生SQL查询   Hibernate提供了原生的SQL语句查询,通过createSQLQuery(String)和createNativeQuery(String),createSQLQuery(String)是Hibernate5.x之前的版本的,在Hibernate5.x和之后,都采用的是createNativeQuery(String),使用原生SQL虽然麻烦,但是...

莫负时光 5254

HibernateSQL标量查询实体查询

HibernateSQL查询中 标量查询和试题查询

VipMao的博客 2368

Hibernate 执行SQL语句的count函数返回BigDecimal类型

当前使用Hibernate版本是3.2.6,数据库是Oracle11g,当使用 HibernateTemplate 的execute方法执行sql语句(不是 hql 语句)查询的时候,使用count聚合函数,返回结果是 BigDecimal 类型,不是Integer也不是Long,需强转成 BigDecimal 类型,然后调用其对象的 intValue 或 longValue 方法就可以了。

Seven's Rainbow Paradise 1万+

Hibernate使用原生SQL语句(left join左连接查询

Hibernate使用原生SQL语句 以下是本人对Hibernate使用原生SQL语句的理解: 在项目开发当中使用Hibernate提供的HQL有时候不能满足需求,尤其是多表查询或者是多表中没创建主外键关联关系,我也试过平常的连接 比如说a表和b表,a、b表没建立主外键关系。a、b表对应的实体为A、B(SQLServer语法) create table a ...

龚小帅的博客 2988

Hibernate的HQL简单查询语句

前言       不管数据库用的是什么类型,对于查询语句来说,我们总是习惯了SQL语句。它之所以能够屹立不倒,一方面已成为了习惯,一方面确实功能强大。Hibernate相对于其他ORM实现来说,数据查询是它独特的亮点。它所提供的HQL,类似于SQL语句,但是却比SQL语句灵活。它跟SQL语句有很多相似的地方,是因为这样的话更容易被接受。   HQL查询   简单属性查询      ...

Coder Yasmine 3071

Hibernate4 中getHibernateTemplate() 使用原生sql语句查询返回非托管实体对象

@Repository public class ABCDaoImpl extends HibernateDaoSupport implements IABCDao {     @Inject     public void setSuperSessionFactory(SessionFactory sessionFactory) {         super.setSessio

vevoly的博客 4303

Hibernate使用SQL查询返回实体类型

转自:http://jxdwuao.iteye.com/blog/638134 HibernateSQLCC++C# 以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中。Hibernate中,可以自动帮我们注入到Hibernate 甚至是 非 Hibernate 类型当中。   Java代码   String sql

洋洋的专栏 2248

hibernate查询结果映射到实体和map的方法

1.sql查询封装对象,配置映射,把查询出来的数据封装到实体当中: 方法一:addEntity(A.class)设定查询出的结果映射到相应的实体中,但是这个实体必须在hibernate的映射文件中配置了相应的映射 //集合中的Object[], Object[0]即使Person,Object[1]即使MyEvent public List<Object[]> getMyEve...

lgxzzz的博客 1542

Hibernate SQLQuery 原生SQL 查询返回结果集处理

在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持。1.使用SQLQueryhibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. 1Session.createSQLQuery(); 1.1标量查询 最基本的SQL查询就是获得一个标量(数值)的列表。 1sess.createSQLQuery("SELECT * FRO...

lgxzzz的博客 1039

Hibernate 原生SQL 与 (标量查询、字符串查询实体查询

hibernate是支持sql语句查询的,他称之为原生sql,因为他的写法并不是纯sql......     解决Hibernate原生SQL映射问题 在问答里和论坛中,经常看到有人问,怎样将使用本地SQL查询出来的结果映射为值对象的问题,这里就Hibernate中提供的方法做个结论。前提, 这里没有使用属性的延迟加载技术。 假设有个值对像,如下: Java代码 1. package test; 2. 3. pub

方逸涛的专栏 4301

几种hibernate原生sql查询返回

1.---SELECT  new map(main.id AS id3333,main.startdate AS startdate) from WeekData main 上述返回值是List>---map的key为as后面的别名,value为实际查询结果 2.---SELECT  new map(main.id,main.startdate) from WeekData main 上述返

u014476019的博客 5247

hibernate中,如何把原生sql查询出来的结果映射到实体bean

大家都知道hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。 个人觉得,hibernate自带的hql语句却不见得很好用。 现实工作中,有很多场景是用到原生sql进行查询的,比如oracle的递归、复杂语句查询等。或许hql也能进行递归、复杂语句查询,但像我这种用惯ibatis的,很是不爽hql。 简单举个例子说一下,hq

宇强的一亩三分地 6369

hibernate使用原生SQL查询返回结果集的处理

hibernate使用原生SQL查询返回结果集的处理 今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句查询结果。hibernate使用createSQLQuery拉来来实现SQL语句查询,具体用法:session.createSQLQuery(sql),对于用SQL返回的结果集是...

anyuta5577的博客 266
上一篇: jsp包含html文件中文显示乱码的解决方法
下一篇: Struts2 动态Action的三种实现方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值