文档章节

hql语句设置参数的问题,query.setEntity()

疯狂的海豚
 疯狂的海豚
发布于 2014/06/04 13:38
字数 565
阅读 2535
收藏 1

有个问题困扰很久,一直没找出问题,今天准备在讨论区贴出来,寻求帮助,在整理问题的过程中,灵光一闪,好像忽然明白了问题所在。后来经过测试,确定无误。

犯错的具体经过就不一一敖述,怪不好意思的,怪自己不够聪明,思维僵化,总归一个字,笨。下面直接说问题根源

String hql = "update SysUser c set c.userStatus=:userStatus,c.userPass=:userPass,c.sysRole=:sysRole where c.userId=:userId";
   Query query = sessionFactory.getCurrentSession().createQuery(hql);
   query.setInteger("userStatus", user.getUserStatus());
   query.setString("userPass", user.getUserPass());
   query.setEntity("sysRole", user.getSysRole()); //关键点在这里 setEntity
   query.setLong("userId", user.getUserId());

 query.setEntity("sysRole", user.getSysRole());  当user.getSysRole()==null时,程序就会报错

报错提示为:entity for parameter binding cannot be null

如果必须要把user.getSysRole()设置为空,那怎么做呢?

query.setEntity("sysRole", null);或query.setEntity("sysRole", "");都报错,设置空字符串也是不行的,这里不能放String类型。直接按照sql语句的思路处理

String hql = "update SysUser c set ..省略..,c.sysRole='' where c.userId=:userId";

直接设置为空就好,虽然c.sysRole是对象类型,但这里可以按照sql语法来处理。

嘿嘿,就这样了。

端午节回家过节,结果在家吹风扇吹感冒了,哥们这强悍的身体,小风寒算啥,今天一早泡个热水脚,现在头也不晕了,眼也不花了。但终究是感冒,身体抵抗力下降了啊,运动少,还通宵。比尔盖茨年轻时虽然也通宵达旦的工作,但微软全公司的员工可都是免费办健身卡滴。

这几天想恢复正常健康的生活方式,便找出以前看过的一本书,网上找的《4点起床(最养生和高效的时间管理)》一书,作者把一天分为3个八小时,4-12点,12-20点,20点-凌晨4点,第一个八小时用来处理复杂度较高的工作,第二个八小时用来处理日常及思考未来,第三个八小时做自己喜欢的事,比如看书,陪家人,睡觉。以前尝试过这种生活方式,感觉很好,一天都充满精神,现在想重新拾起,给自己一个好的身体和状态。

© 著作权归作者所有

共有 人打赏支持
疯狂的海豚
粉丝 2
博文 19
码字总数 10461
作品 0
合肥
程序员
私信 提问
Java程序员从笨鸟到菜鸟之(六十四)细谈Hibernate(十五)HQL与QBC查询方式详解

首先来看一下,hibernate提供的几种检索方式: 1.导航对象图检索方式 :根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以...

长平狐
2012/11/12
178
0
hibernate hql 分页查询

今天封装了自己的hibernateDao,主要是基于hql的,期间遇到一个问题,最后解决了,和大家分享分享 其他hibernate的查询,像QBE,QBC,这些就不说了,如果用hibernate还是hql最强大,也很容易...

peanutmain
2012/06/10
0
0
Hibernate查询技术之HQL语句

1、session中的get( )和load( )方法来查询对象。但其查询功能有限。 2、HQL查询方式 使用传统的JDBC API来查询数据,需要编写复杂的SQL语句,然后还要将查询结果以对象的形式进行封装,放到集...

大黄有故事
2016/10/30
0
0
hibernate hql查询(需完善)

使用HQL需要四步 得到Session 编写HQL语句 创建Query对象(Query接口是HQL 查询接口。它提供了各种的查询功能) 执行查询,得到结果 sessionFactory =new Configuration().configure().buil...

zdatbit
2016/03/10
44
0
hibernate的hql查询语句总结

这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利。 在这里通过定义了三个类,Special、Classroom、Student来做测试,Special与Classroom是一对多,Classroom与Student是一对多的关...

stys35
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++ 定义新的异常

#include <iostream> #include <exception> using namespace std; struct MyException : public exception { const char * what () const throw () { return "C++ Exception"; } }; int main......

天王盖地虎626
41分钟前
1
0
PDMan-2.1.1 发布:用心开源,免费的国产数据库建模工具(春节前最后一个版本)

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
今天
12
0
OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
今天
133
6
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
9
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部