首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Criterion Restrictions.like与数字和日期

Criterion Restrictions.like与数字和日期
EN

Stack Overflow用户
提问于 2011-05-27 16:53:38
回答 4查看 3.4K关注 0票数 3

我使用的是Hibernate而不是mySQL。在mySQL中,您可以将LIKE放在查询中,甚至可以对数字(如double)参数和日期进行类似查询,例如,您可以这样写:

代码语言:javascript
复制
select * from sillytable where field like "3.33%"

这将会起作用。问题是我不能在使用Restrictions.like的标准中做到这一点,事实上它抛出了一个异常,说明它不能将字符串转换为日期或双精度。

我该如何用它来做这件事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-06 18:14:28

我发现做我想做的事情的唯一好的解决方案就是使用HQL。在标准中没有明确的方法来做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2011-05-27 17:08:13

我认为这实际上是:

代码语言:javascript
复制
x => 3.33 and x < 3.34

在hibernate中,这是:

代码语言:javascript
复制
Restriction.between("field", 3.33, 3.34)

Between定义为(min <= expr AND expr <= max)。因此,必须将上限更改为从3.33开始的最大值。(注意:如果上界不可表示,3.34表示为3.33999,则可能出现表示失败。。如果您使用这个已经有效的界限执行nextAfter,您将会遗漏这个值。)

代码语言:javascript
复制
Restriction.between("field", 3.33, Math.nextAfter(3.34, -Double.MAX_VALUE));
票数 0
EN

Stack Overflow用户

发布于 2011-05-27 18:05:05

代码语言:javascript
复制
Criteria crit;

try {
  crit = session.createCriteria(sillytable.class, "st");
  crit.add(Restrictions.like("field", number + "%"));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6149921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档