请教 Mybatis plus 用法

92 天前
 xiaoyureed

俺用 mybatis-plus 做业务的时候, 经常碰到需要用 apply 自定义 sql 的场景, 像这样

APPROVE_TODO_STAFF 是数据库的字段名字, 对应 java entity 里的一个字段 approveTodoStaff, 有时候用 IDE 对 approveTodoStaff重构, APPROVE_TODO_STAFF 不会自动修改,就漏了.

我的问题是, 有办法消除 APPROVE_TODO_STAFF 吗?

6322 次点击
所在节点    Java
45 条回复
fpure
92 天前
真的,很不建议使用这种 mp 的类 queryDSL 的方式进行查询,原因有三:一、污染 service 层;二、毫无可读性;三、代码被 mp 侵入,以后想摘掉 mp 也难弄了
iszhouyu
92 天前
为啥我用的 mp 没见过.nested()这方法
marking0614
92 天前
复杂的 SQL 直接 xml 啊,这不给自己找罪受
ShuangChenyue
92 天前
这不算复杂查询把
都是 where 条件判断 感觉写 xml 不如这样写
Iakihsoug
92 天前
生成 entity 时加上 enableColumnConstant()开启生成字段常量,字符串用常量代替 GpReportEntity.APPROVE_TODO_STAFF
Asan
92 天前
能不用 mybatis plus 就不用吧
635925926
92 天前
@pangdundun996 用 orm 不用考虑逻辑删除。手写 sql 每个 sql 都要加上逻辑删除的条件
zoharSoul
92 天前
这种建议在 xml 里写 sql
joker8ren
92 天前
看到那么长一串 就没有阅读的欲望了
xiaoyureed
92 天前
@pangdundun996 总觉得 xml 更麻烦, 可能心理作用
SmartTom
92 天前
@xiaoyureed #30 没那么麻烦,谨慎一点我都是在 nav 上跑一边手写的 sql ,没啥问题直接扔到 xml 中。
sagaxu
92 天前
@xiaoyureed XML 是更麻烦,但是在 Java 良好支持多行字符串模板前,也只能这样了。不过也快了,2030 年之前应该能用上。
vansiit
92 天前
我一直在推荐用 xml 写 sql ,这个问题简直是一个活生生的例子。而且如果是多人团队,我是旗帜鲜明发反对引入 mybatis plus 和 jpa ,原因就是控制不了有人这么玩
SmartTom
92 天前
@sagaxu 多行字符串? JDK17 不就有类似于 python 中的'''了吗。。。汗颜
caixiaomao
92 天前
我去,看都不想看,还是用 xml 写吧😀
Mandelo
92 天前
没法考出来测试和优化吧
sagaxu
92 天前
@SmartTom String Templates Java 21 才有预览版,Java 22 是 Second Preview ,到 Java 23 时放弃了。

https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
burymme11
92 天前
Mybatis plus 只用来做单表的简单 CURD ,复杂 SQL 一律走 XML 。
别说多人团队了,哪怕就自己写的,两个月后再回头看看,都想扇自己嘴巴。
winlans
92 天前
lombok 有个注解,@FieldNameConstants ,可以生成属性的字符串
Surechun
92 天前
简单直接写,复杂的用 sql ,方便后期调优。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX