文档章节

hibernate hql中当查询条件为时间格式时的问题

z_jordon
 z_jordon
发布于 2015/02/12 17:44
字数 232
阅读 19
收藏 0

上代码

StringBuilder builder = new StringBuilder("from ExpressTrajectory where memberExpressId = ? and createDate >= ? and createDate <= ?");
List list = super.createQuery(builder.toString(), memberExpressId, beginDate, endDate).list();

其中beginDate和endDate是java.util.Date类型,这段代码执行会报异常:


org.hibernate.HibernateException: ordinal parameter mismatch

大概意思是参数类型不匹配

然后看了一下基类的createQuery方法是这样写的:

public Query createQuery(final String queryString, final Object... values) {
		Query query = getSession().createQuery(queryString);
		if (values != null) {
			for (int i = 0; i < values.length; i++) {
				query.setParameter(i, values[i]);
			}
		}
		return query;
	}

其中使用了setParameter方法来设置参数,这样似乎hibernate处理不了Date类型的参数

于是把代码改成

StringBuilder builder = new StringBuilder("from ExpressTrajectory where memberExpressId = ? and createDate >= ? and createDate <= ?");
List list = super.createQuery(builder.toString()).setString(0, memberExpressId).setDate(1, beginDate).setDate(2, endDate).list();

直接用setDate来设置Date类型的参数,问题解决!

© 著作权归作者所有

共有 人打赏支持
上一篇: android仿真器文件
下一篇: 关于异常的设计
z_jordon
粉丝 36
博文 251
码字总数 78212
作品 0
厦门
技术主管
私信 提问
hibernate防止sql注入对参数赋值传参数的例子

1、按参数名称绑定 在HQL语句中定义命名参数要用”:”开头,形式如下: 上 面代码中用:customername和:customerage分别定义了命名参数customername和customerage,然后用 Query接口的setXXX(...

毅屺
2016/07/06
164
0
Hibernate使用小记

在使用Hibernate开发的过程中,遇到场景in条件查询,查询条件里的个数超过1w甚至更高(且不讨论这种方式是否合理),在生成hql,执行查询的时候发现执行list()方法的时候特别慢。后经从网查询...

Only_小白
2016/05/10
178
0
Hibernate查询、 检索、 抓取 (Fetch)

一、HQL 在hql中关键字不区分大小写,但属性和类名区分大小写 简单属性查询 * 单一属性查询,返回结果集属性列表 * 多个属性查询,返回集合元素是对象数组,数组长度取决于select中属性个数 ...

程海峰
2013/06/04
0
0
Hibernate Criteria Query查询

Hibernate这节官网连接:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html 1.创建标准查询 org.hibernate.Criteria接口表示特定持久类的一个查询。 Session是......

郏高阳
2013/08/26
0
0
hibernate--HQL语法与详细解释

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

随智阔
2014/03/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows下让 jar 在后台运行的办法

windows下 运行 java jar 不出现 命令行 窗口 新建一个披处理 run.bat,内容如下 @echo off start javaw -jar xx.jar exit 双击运行即可。...

glen_xu
16分钟前
1
0
jdk1.8 lambda stream 指定的对象属性进行去重

原因:因为Stream提供的distinct()方法只能去除重复的对象,无法根据指定的对象属性进行去重,可以应付简单场景。 解决方案: //去重,共同信息保存到bizPledgeSupplierVOs里bizPledgeSupp...

INSISTQIAO
18分钟前
0
0
vue nextTick深入理解---vue性能优化、DOM更新时机、事件循环机制

定义[nextTick、事件循环] nextTick的由来: 由于vue的数据驱动视图更新是异步的,即修改数据的当下,视图不会立即更新,而是等同一事件循环中的所有数据变化完成之后再统一进行视图更新。...

JamesView
26分钟前
1
0
常用汉字编码

GB2312 仅包含大部分的常用简体汉字,但已经不能适应现在的需要; GB13000 由于GB2312的局限性,国家标准化委员会制定了GB13000编码; 但由于当时的硬件和软件都已经支持了GB2312,而GB13000...

晨猫
29分钟前
1
0
纳尼?我的Gradle build编译只要1s

https://juejin.im/post/5c00ec39e51d4555ec0394f6

SuShine
30分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部