V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  m1ch3ng  ›  全部回复第 2 页 / 共 6 页
回复总数  119
1  2  3  4  5  6  
2024-07-27 15:30:58 +08:00
回复了 tongjiann 创建的主题 程序员 有一个代码的设计问题,大佬们帮帮我
自己研究了下解决了,代码如下:
@Override
protected void processSelect(Select select, int index, String sql, Object obj) {
// 默认情况下,直接加到最外层查询的 where 后面
PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
if (select.toString().contains("ROWNUM")) {
// oracle 分页的情况,需要找到最内层的查询,然后加到 where 后面
plainSelect = getInnerSelect(plainSelect);
}
// 给查询添加条件
GreaterThanEquals greaterThanEquals = getGreaterThanEquals();
Expression where = plainSelect.getWhere();
plainSelect.setWhere(where == null ? greaterThanEquals : new AndExpression(where, greaterThanEquals));
}

private static PlainSelect getInnerSelect(PlainSelect select) {
if (select.getFromItem() instanceof SubSelect) {
PlainSelect fromSelect = (PlainSelect) ((SubSelect) select.getFromItem()).getSelectBody();
return getInnerSelect(fromSelect);
}
return select;
}

@NotNull
private static GreaterThanEquals getGreaterThanEquals() {
GreaterThanEquals greaterThanEquals = new GreaterThanEquals();
greaterThanEquals.setLeftExpression(new Column("created_time"));
greaterThanEquals.setRightExpression(new DateValue("'2024-07-26'"));
return greaterThanEquals;
}
2024-07-27 09:48:29 +08:00
回复了 tongjiann 创建的主题 程序员 有一个代码的设计问题,大佬们帮帮我
@andy2415 #19 试了下,oracle 分页遇到了一个问题,sql 打印:

==> Preparing: SELECT * FROM (SELECT TMP.*, ROWNUM ROW_ID FROM (SELECT id, serial_number, command, sap_no, product_no, voucher_id, voucher_detail_id, voucher_details_id, record_status, remark, created_time, updated_time, pro_factory, batch_no, product_date, expire_date, product_num, pro_unit_cost, rx_flag, operator_name, operate_date, total_amount, price, old_voucher_id, old_voucher_details_id, spp_hsbl, settlement_time FROM POS_INVENTORY_UPLOAD_RECORD WHERE (command = ?)) TMP WHERE ROWNUM <= ?) WHERE ROW_ID > ? AND created_time >= {d '2024-07-26'}
==> Parameters: SALE_OR_REFUND_SALE(String), 4(Long), 2(Long)
<== Total: 0

其中 created_time >= {d '2024-07-26'} 是我自定义拦截器加的 GreaterThanEquals ,然而 mybatis-plus 在 oracle 场景下把它放在了最外层查询里面,如果想要实现放在 WHERE (command = ? AND created_time >= {d '2024-07-26'}),请问该如何调整?

P.S. 我配置的自定义拦截器顺序是放在分页插件后面的
@mansingular 去营业厅办理的,今年好像涨价了
深圳移动 30 一个月 500M 打 LOL 稳定 20ms 以下
买个腰靠试试
前公司的 hr 说放出去一个 java 岗位就能收到几百份简历
2023-12-28 20:33:10 +08:00
回复了 superliwei 创建的主题 分享创造 国产软件征集中文名字
我觉得你可以把你对名字的需求和风格告诉 GPT ,让它帮你想一想
2023-11-08 14:35:14 +08:00
回复了 smallpampan 创建的主题 随想 一个人在海底捞过生日是怎么样的体验?
生日快乐!
2023-11-08 10:33:22 +08:00
回复了 stardustree 创建的主题 生活 哎,早产的娃严重脑出血,要放弃治疗了...
节哀
2023-06-21 09:22:42 +08:00
回复了 buried 创建的主题 旅行 端午 去长沙玩,有啥建议吗
建议是不去
2022-04-06 08:28:46 +08:00
回复了 xingHI 创建的主题 Apple 关于 Mac 下好用的截图工具 收集 v 友看法 互相分享使用体验
snipaste
2022-01-01 11:42:49 +08:00
回复了 gzf6 创建的主题 程序员 新年好!
新年快乐
loki+grafana
2021-12-05 12:26:32 +08:00
回复了 YoloNaV 创建的主题 宽带症候群 迫穷,各位帅比推荐下深圳城中村优惠的款待套餐!
2021-12-03 17:06:42 +08:00
回复了 meisen 创建的主题 剧集 有每看必哭的电影吗?
《星际穿越》
2021-12-03 16:06:37 +08:00
回复了 oaza 创建的主题 职场话题 公司入职起花名
@minami #45 我也来一个,乌眼猪
2021-12-03 10:16:53 +08:00
回复了 howoldareyou2 创建的主题 汽车 超车的时候,对方突然加速,对方在想什么?
马路上是什么人都有的,他就是不想让你超他车,还是安全最重要
2021-11-26 17:33:59 +08:00
回复了 zx125 创建的主题 问与答 周 5 了,大家周六周日有啥打算?有啥兴趣爱好
周末几乎必干的几件事:lol 开黑,打羽毛球,健身房
偶尔会干的事:爬山,唱 k ,看电影,约朋友出来吹水,还有去我姐那吸猫,附一张小猫咪美照

[![oVyE9K.jpg]( https://z3.ax1x.com/2021/11/26/oVyE9K.jpg)]( https://imgtu.com/i/oVyE9K)
2021-11-12 16:35:37 +08:00
回复了 Danswerme 创建的主题 英雄联盟 关于 LOL 的一点发现
从高中开始跟几个同学一起玩 LOL 这么多年了,现在都是跟他们一起开黑才玩,自己一个人玩觉得没什么意思,朋友也都比较逗比,跟他们一起玩挺快乐的。一开始也是打排位和匹配,后面也玩不动了,现在只玩大乱斗,每逢周末基本都会不约而同地呼喊对方上线,大家没什么事就会来上几把快乐的乱斗。
2021-11-09 13:31:30 +08:00
回复了 WillShin 创建的主题 Windows windows 11 难以忍受之处汇总
我觉得资源管理器用起来变卡了很多
1  2  3  4  5  6  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1259 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 23:55 · PVG 07:55 · LAX 15:55 · JFK 18:55
♥ Do have faith in what you're doing.