首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有一个干净的解决方案来实现QueryDSL / Oracle中的包容性启动和独占结束?

是否有一个干净的解决方案来实现QueryDSL / Oracle中的包容性启动和独占结束?
EN

Stack Overflow用户
提问于 2015-08-03 03:29:46
回答 2查看 807关注 0票数 4

我正在尝试使用QueryDSL (包含开始,独占结束日期)创建一个时间间隔的查询。

在“纽约时报”( 文档 of QueryDSL )中,我发现public BooleanExpression between(Expression<T> from, Expression<T> to);在双方都是独家的,

获得第一个<这个<第二个表达式

然而,它转化为Oracle BETWEEN,这在双方都是包容的。

(相当于first <= this <= second)。

像这样的QueryDSL:

代码语言:javascript
运行
AI代码解释
复制
[...]
person.name.like(n)
  .and(person.birthdate.between(from, to))
[...]

像这样转换为Oracle SQL:

代码语言:javascript
运行
AI代码解释
复制
SELECT *
FROM PERSON
WHERE NAME LIKE n
  AND BIRTHDATE BETWEEN from AND to;

有人知道这背后的原因/逻辑吗?

只是那些“烂”的文件吗?

很明显,两者之间对我来说是行不通的。

我是不是应该用更笨重的

代码语言:javascript
运行
AI代码解释
复制
person.name.like(n)
  .and(person.birthdate.goe(from)
  .and(person.birthdate.lt(to))

还是有一个干净的解决方案能做我想要的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-03 08:06:06

这些文档早在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。

对于包容性启动,可以编写自己的实用程序方法:

代码语言:javascript
运行
AI代码解释
复制
public static <T> Predicate range(ComparableExpression<T> expr, T from, T to) {
    return expr.goe(expr).and(expr.lt(to));
}
票数 3
EN

Stack Overflow用户

发布于 2015-08-03 03:53:26

这看起来确实只是拙劣的文档,然而,我不认为它有那么大的区别。如果文档按照建议做了,那么这对您来说是不合适的;当前发生的事情会稍微好一些。

Oracle方言中没有一个表达式表示操作first <= this < second。因此,您仍然需要这样做:

代码语言:javascript
运行
AI代码解释
复制
person.name.like(n)
  .and(person.birthdate.between(from, to)
  .and(person.birthdate.lt(to))

它将在SQL中表示为:

代码语言:javascript
运行
AI代码解释
复制
select *
  from person
 where name like n
   and birthdate between from and to
   and birthdate < to

在这一点上,很容易在前面清楚地陈述你的意图,并做你想做的事情:

代码语言:javascript
运行
AI代码解释
复制
person.name.like(n)
  .and(person.birthdate.goe(from)
  .and(person.birthdate.lt(to))

在SQL中,column.like(String)变成了column like string,我有点惊讶;这相当于column = string。我原以为.like()会变成column like string || '%',它会在列的开头搜索所要求的字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31786085

复制
相关文章
正式开源!独占时代结束
Mullvad Privacy Companion 是一款目前仅支持 Firefox 浏览器的扩展程序,近期正式开源,源代码已托管至 GitHub。
民工哥
2022/10/27
6720
正式开源!Firefox独占时代结束
文 | Travis、出品 | OSC开源社区(ID:oschina2013) Mullvad Privacy Companion 是一款目前仅支持 Firefox 浏览器的扩展程序,近期正式开源,源代码已托管至 GitHub。 图片 Mullvad Privacy Companion 是一个专注于保护用户隐私的浏览器扩展程序,实际上该扩展在去年 9 月就已发布,但当时并没有第一时间开源。近日,Mullvad Privacy Companion 借着推出新版本的机会正式开源了该项目(仍然是测试版)。 Mu
程序猿DD
2022/04/25
5490
正式开源!Firefox独占时代结束
instantbox - 几秒内启动一个干净的 Linux 系统
instantbox是一款非常实用的项目,它能够让你在几秒内启动一个主流的 Linux 系统,随起随用,支持 Ubuntu, CentOS, Arch Linux, Debian, Fedora 和 Alpine,通过 WebShell 访问,简单快捷,适合于演示、测试、体验等场合。
kenvie
2022/04/30
7540
instantbox - 几秒内启动一个干净的 Linux 系统
彻底的卸载干净oracle 11g
2.打开注册表:regedit 打开路径: <找注册表 :开始->运行->regedit> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务。
摘繁华
2022/03/08
1.1K0
彻底的卸载干净oracle 11g
彻底的卸载干净oracle 11g
2.打开注册表:regedit 打开路径: <找注册表 :开始->运行->regedit> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务。
摘繁华
2022/08/31
4480
彻底的卸载干净oracle 11g
Oracle启动和停止的方式详解
启动数据库过程中,文件的使用顺序是:参数文件,控制文件,数据文件和重做日志文件。这些文件都正常时,数据库才能正常启动。
小小工匠
2021/08/16
1.6K0
聊聊querydsl的生成类
querydsl强大是强大,但是Q类这么一搞,有点搞复杂了,想完全屏蔽sql是不可能的,有一定适用场景,但不是万能。
code4it
2018/09/17
1.5K0
在Linux中宝塔面板的定时任务启动后如何结束
但是定时任务启动后,发现代码逻辑有点问题,并且任务一直在后台运行,所以我需要kill掉任务进程,接下来我就来说一下解决方法
用户1539053
2023/07/24
9620
Oracle HowTo:如何在Oracle10g中启动和关闭OEM
作者:eygle 出处:http://www.eygle.com/blog 日期:October 28, 2005 本文链接:http://www.eygle.com/archives/2005/10/howto_control_10goem.html
数据和云01
2018/09/05
1.3K0
Oracle HowTo:如何在Oracle10g中启动和关闭OEM
静态代理和动态代理区别(是否有实现类)
Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,
ha_lydms
2023/08/09
2410
静态代理和动态代理区别(是否有实现类)
芯片短缺状况是否将结束?
芯片短缺状况是否将结束?鉴于美国国会已批准为扩大美国国内芯片产能提供资金,总统拜登签署《美国芯片法》并予以正式立法。
高拓电子
2022/10/09
2470
判断链表中是否有环
操作一:定义了两个变量来记录,A一个一次走一步,B一个一次走两步,如果有环B必然会追上A。如果无环B必然会先遍历完。
忧愁的chafry
2022/10/30
1.6K0
判断链表中是否有环
【DB笔试面试761】在Oracle中,DG中GAP有几种解决方案?
当主库的某些日志没有成功传送到备库,那么这时候就发生了归档裂缝(Archive Gap)。目前Oracle提供了两种日志GAP的检测和处理机制,分别是自动GAP处理(Automatic Gap Resolution)和FAL进程GAP处理(FAL Gap Resolution)。自动GAP处理即主库上的ARCn进程会每分钟检查备库上的日志GAP情况并做相应处理。FAL(Fetch Archive Log)是通过配置FAL_SERVER和FAL_CLIENT实现GAP检测的一种机制,它是备库主动发起的“取”日志的过程。备库就是FAL_CLIENT,它从FAL_SERVER中取这些GAP。Oracle会首先尝试使用FAL进程处理GAP,当发现FAL机制并没有配置生效的时候,进而尝试使用自动GAP处理。
AiDBA宝典
2020/02/26
1.3K0
使用Oracle中的emp,dept来学习Django ORM
学习Django的时候,总是觉得这部分内容和实际的应用有一定的差别或者距离。一方面Django自带的ORM对于底层数据库来说是一种适配性很强的组件,可以不强依赖于某一种数据库,sqlite,MySQL,Oracle,PG等等都可以,学习起来需要一定的周期。另外一方面是因为这种方式是通用的API,一下子没有了SQL语句,要理解并接受这种思想,需要一点时间,对很多DBA来说需要适应。第三点就是没有融会贯通,好像看明白了,但是实际写的时候发现还是摸黑,不知道从何入手。 所以我就换个思路,从数据库
jeanron100
2018/03/22
9160
使用Oracle中的emp,dept来学习Django ORM
LeetCode,给定一个链表,判断链表中是否有环
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
微客鸟窝
2021/08/18
6520
LeetCode,给定一个链表,判断链表中是否有环
Java并发——ReentrantReadWriteLock如何同时实现AQS的独占模式和共享模式
AQS通过 同步状态state来表示锁(0—锁可用,非0—锁不可用,可重入锁每重入一次state+1)
淇妙小屋
2022/04/02
4100
Java并发——ReentrantReadWriteLock如何同时实现AQS的独占模式和共享模式
详解TCP的重置功能和实现连接结束功能
上一节我们完成了TCP三次握手原则,当双方通过三次握手交换了各自用于传递信息的参数后,双方进入数据分发模式,在TCP协议上说双方都进入了ESTABLISHED状态。基于早期质量低下的数据传输网络,连接建立只不过是开始,在通讯过程中保持稳定和通畅是TCP协议的重要内容。
望月从良
2019/09/18
1.5K0
查看linux上面是否有安装redis,redis开机启动
说明已经安装好了,如果不知道怎么安装,告诉你一个简单的方法,一步就可以把php、php-redis拓展,redis-server,redis-cli这三个装起来。 参考链接:http://blog.csdn.net/zhezhebie/article/details/73325663
全栈程序员站长
2022/07/22
6.2K0
Oracle中的三种 UPDATE FROM 的解决方案
本文介绍了Oracle中的三种UPDATE FROM的解决方案,分别是子查询、视图和利用PL/SQL。当更新操作涉及到多个表时,可以通过这三种方法实现。子查询是指将需要更新的表与其他表进行嵌套,形成一个子查询,然后进行更新操作;视图是指通过创建一个视图来将需要更新的表与其他表进行关联;利用PL/SQL则是通过编写一段程序代码来实现UPDATE操作,这三种方法都可以实现Oracle数据库中表的更新操作。
用户1148526
2018/01/03
1.2K0
Oracle lsnrctl--监听器的启动和关闭
在启动、关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监听器的状态: 1、$lsnrctl status:检查当前监听器的状态 2、$lsnrctl start [listener-name] 启动所有的监听器,可以指定名字来启动特定的监听器 3、$lsnrctl stop [listener-name]  关闭所有的监听器,可以指定名字来关闭特定的监听器 4、$lsnrctl reload  重启监听器,此命令可以代替lsnrctl stop,lsnrctl s
Java学习123
2018/05/16
2.3K0

相似问题

由Oracle Scheduler启动的干净结束plsql过程

21

继承类型问题:是否有一个干净的解决方案?

20

是否有更干净的方法来实现多模型的曲线拟合?

21

是否可以在纯ColdFusion解决方案中实现干净的URL?

29

在Java中,是否有一种更干净的方法来实现if语句?

76
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档