文档章节

Hibernate Bug

小和尚敲代码
 小和尚敲代码
发布于 2016/01/30 19:20
字数 417
阅读 113
收藏 3

Hibernate对于用原生的Sql查询有bug,当使用sql语句查询时,要注意进行标量查询或者是实体查询(SQLQuery)query.addEntity(Entity.Class)  ,但是有时候即使是配置了实体的id,也即表的主键,也会发生错误Column notFound ‘’id“   ;所以不建议使用原生sql语句在hibernate中;


hql查询单表部分字段:

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

1.查询全部字段的情况下,如"from 实体类",list中封装的对象为实体类本身,各属性都将得到填充。

2.只查询一个字段,默认情况下,list中封装的是Object对象。

3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。

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

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


附hql查询多表语句:

String hql = "select new 
Book(book.book_name,book.book_pic,book.book_author,book.book_translator,book.publish_info)
 from Bookuse as bookuse,Book as book where bookuse.book_id_fk = 
book.book_id and bookuse.bookuser_id_fk in (select user.user_id from 
User as user where user.useraccount = '"
                + obj + "') ";


© 著作权归作者所有

共有 人打赏支持
小和尚敲代码
粉丝 23
博文 86
码字总数 28687
作品 0
南昌
程序员
私信 提问
Hibernate ORM 4.3.6.Final 和 4.2.15.Final 发布

Hibernate ORM 4.3.6.Final 和 4.2.15.Final 发布,改进记录: 4.3.6.Final: HHH-8818 fixed a regression introduced in 4.3.0.Final causing Hibernate to not be able to find the JNDI D......

红薯
2014/07/19
1K
5
Hibernate ORM 4.2.20.Final 发布

Hibernate ORM 4.2.20.Final 在7月24日就已经发布了,但是因为 SourceForge 网站的问题导致文件无法上传。该版本详细的改进请看 https://hibernate.atlassian.net/jira/secure/ReleaseNote....

红薯
2015/08/08
839
1
Hibernate ORM 5.2 的第 12 个 Bug 修复版本发布

Hibernate ORM 5.2 的第 12 个 Bug 修复版本发布了,该版本主要是 Bug 修复,下面是修复的 Bug 列表: tag is here; changes are listed here (or, for people without a Hibernate Jira ac...

红薯
2017/10/21
1K
4
Hibernate ORM 4.3.1.Final 发布

Hibernate ORM 4.3.1.Final 发布,此版本是第一个 Hibernate ORM 4.3 的 bug 修复版本。 主要修复了4.3中的一些bug,也做了如下一些改善: HHH-5289 : Improved performance of reflection ...

NinjaSquid
2014/01/23
2.9K
16
中式流程引擎 UFLO 发布 2.0.4 正式版

中式流程引擎UFLO发2.0.4正式版发布了,更新如下: 在默认的Hibernate5版本中,将依赖的Hibernate版本从5.2.11.Final降为5.1.10.Final以解决运行时控制台出现的Hibernate警告信息 将保存以及...

youseries
2017/10/30
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
5分钟前
0
0
可重入锁和非可重入锁

广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。 可重入锁: ReentrantLoc...

狼王黄师傅
10分钟前
1
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
24分钟前
0
0
使用 React 和 Vue 创建相同的应用,他们有什么差异?

在工作中应用 Vue 之后,我对它有了相当深刻的理解。 不过,俗话说「外国的月亮比较圆」,我好奇「外国的」 React 是怎么样的。 我阅读了 React 文档并观看了一些教程视频,虽然它们很棒,但...

阿K1225
33分钟前
1
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部