请教 Mybatis plus 用法

xiaoyureed · 2024-8-9 08:55:10 · 413 次点击
俺用 mybatis-plus 做业务的时候, 经常碰到需要用 apply 自定义 sql 的场景, 像这样

![gp=report.png]( https://vip.helloimg.com/i/2024/08/09/66b569c9320a1.png)

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

我的问题是, 有办法消除 `APPROVE_TODO_STAFF` 吗?
举报· 413 次点击
登录 注册 站外分享
36 条回复  
montaro2017 初学 2024-8-9 09:02:40
可以通过 lambda 表达式获取字段名,然后驼峰转下划线获取
```java
LambdaMeta meta = LambdaUtils.extract(Project::getResearchType);
String fieldName = PropertyNamer.methodToProperty(meta.getImplMethodName());
fieldName = StrUtil.toUnderlineCase(fieldName);

```
SmartTom 小成 2024-8-9 09:15:18
歪个楼,这样写有可读性可言吗?
vishun 小成 2024-8-9 09:22:19
@SmartTom #3 曾经我也认为这样用 ORM 是更现代的方式,但是后来慢慢觉得这样真的是没有 xml 中写的直观和有可读性。
hapeman 初学 2024-8-9 09:23:08
反射?
hyqCrystal 小成 2024-8-9 09:23:15
我觉得简单的用 mybatis plus 无可厚非  复杂的写自定义 sql 可读性 维护性高点
wetalk 小成 2024-8-9 09:23:36
@SmartTom 我认为没有,属于把 plus 用歪了
ma836323493 小成 2024-8-9 09:23:41
这种这么长的查询,建议你直接写 sql , 不要用 mybatis plus , 我都是简单查询和更新才用 plus
BiChengfei 小成 2024-8-9 09:25:15
insert  
updteById  
小表查询直接用 .selectList(Wrappers.emptyWrapper()).stream().filter()..... 内存查找  
复杂查询用 xml ,千万别用 like()、in() 这些函数
wuvvu 小成 2024-8-9 09:30:08
问个题外话,这个显示缩进的是怎么实现的,是插件吗
1234下一页
返回顶部