加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

在QueryDSL / Oracle SQL中是否有一个干净的办理方案来实现海涵

发布时间:2021-01-18 19:00:19 所属栏目:站长百科 来源:网络整理
导读:我正在实行行使QueryDSL(包罗开始,独有竣事日期)建设一个时距离断的查询. 在QueryDSL的documentation中,我发明民众BooleanExpression介于(表达式 T from,Expression T)之间;两边都是独家的, Get a first this second expression 可是它转换为Oracle SQL BETW

我正在实行行使QueryDSL(包罗开始,独有竣事日期)建设一个时距离断的查询.

在QueryDSL的documentation中,我发明民众BooleanExpression介于(表达式< T> from,Expression< T>)之间;两边都是独家的,

Get a first < this < second expression

可是它转换为Oracle SQL BETWEEN,它包括在两头(相等于第一个< = this< = second). 像这样的QueryDSL:

[...]
person.name.like(n)
  .and(person.birthdate.between(from,to))
[...]

转换为Oracle SQL,如下所示:

SELECT *
FROM PERSON
WHERE NAME LIKE n
  AND BIRTHDATE BETWEEN from AND to;

有谁知道这背后的缘故起因/逻辑?
它只是“腐朽”的文件吗?

很明明,这对我来说不会对我有效.

我是否应该行使更粗笨的人

person.name.like(n)
  .and(person.birthdate.goe(from)
  .and(person.birthdate.lt(to))

照旧有一个干净的办理方案,做我想要的?

办理要领

该文档已于 http://www.querydsl.com/static/querydsl/2.2.0/apidocs/com/mysema/query/types/expr/ComparableExpression.html#between(T,%20T)年前修复过

2.2.0于2011年7月18日宣布.我凶猛提议您行使4. *或3. *的新版Querydsl.

对付海涵性开始,独有竣事,您可以编写本身的适用要领:

public static <T> Predicate range(ComparableExpression<T> expr,T from,T to) {
    return expr.goe(expr).and(expr.lt(to));
}

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读