文档章节

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

z_jordon
 z_jordon
发布于 2015/02/12 17:44
字数 232
阅读 12
收藏 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类型的参数,问题解决!

© 著作权归作者所有

共有 人打赏支持
z_jordon
粉丝 35
博文 251
码字总数 78212
作品 0
厦门
技术主管
Hibernate使用小记

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

Only_小白
2016/05/10
178
0
hibernate防止sql注入对参数赋值传参数的例子

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

毅屺
2016/07/06
164
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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
46分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
48分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部