文档章节

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

疯狂的海豚
 疯狂的海豚
发布于 2014/06/04 13:38
字数 565
阅读 2506
收藏 1
点赞 0
评论 0

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

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

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
155
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 Query数据查询

主要由三种查询:HQL查询、Criteria条件查询、SQL查询。 以下分别讲解 1. HQL查询 HQL(Hibernate Query Language)查询提供了更加丰富和灵活的查询特性,因此Hibernate将HQL查询立为官方推荐的...

疯子船长
2015/10/26
1K
0
Hibernate 中 load方法与get方法以及Query查询与Criteria查询

本来之前学过Hibernate的,但是近期接到一个项目,为了方便开发,还有考虑到对Hibernate的不足,重新花了4天由浅入深学了下。 在此,Hibernate里面涉及到多种查询的方法,但是每个方法特性并...

WilsonET
2013/05/28
0
0
hibernate--HQL语法与详细解释

HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hibernate将HQL查询方式立...

随智阔
2014/03/08
0
0
hibernate操作数据库总结

这篇文章用于总结hibernate操作数据库的各种方法 一、query方式 1、hibernate使用原生态的sql语句执行数据库查询 有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不...

小思绪跌跌撞撞仰望天空
2016/08/18
15
0
Hibernate Hibernate的检索方式

HIbernate提供了以下几种检索对象的方式: ①、导航对象图检索方式:根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航...

Winnie007
2015/10/02
22
0
MySQL Config -sql_mode

在进行项目开发过程中遇到一个问题,在本地执行可以,发布到测试Server出现SQL Exception,经过查看异常,发现确实是书写的SQL/JPQL/HQL存在问题,在使用group by方法的select后面没有保证所...

Geek-S
2015/12/25
43
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
10分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
31分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
53分钟前
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
54分钟前
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部