我正在尝试使用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))
还是有一个干净的解决方案,做我想要的?