主题:updateById表更新,字段不全

lcm031002 2020年04月24日 62

beetl版本:1.2.14.RELEASE

调用框架updateById方法,没有更新所有字段。经排查,从map缓存获取的更新语句字段就不全。这种情况该如何处理?

闲大赋 2020年04月24日

不懂你说的map是什的么,beetlsql 操作只会取数据库和pojo的交集,估计是你的某个数据字段在pojo没有对应属性导致的

lcm031002 2020年04月24日

调用框架updateById或者updateTemplateById方法时,框架会去设置update语句并存到缓存中。生成的update语句字段不全。

如下图:我取出tempSource的update语句,没有包括表中所有字段。其中有些字段命名比较特殊,如图2。

生成template.png


图2:

QQ图片20200424160909.png


POJO有定义这些字段:

QQ图片20200424161108.png

lcm031002 2020年04月24日

pojo有定义这些字段:

QQ图片20200424161108.png

闲大赋 2020年04月24日

我倒,就是这个原因,这个估计得特殊命名了,问题出在NameConversion,也许不识别你这种,你可以改改nameconversion实现,针对这个特殊类,特殊实现看看,或者使用JPANameConversion2,直接使用@Cloumn来定义,还有个更快的方法,修改一下数据库字段,比如改成

SHVD_OTHER_V1_UPPER,这样,就是对应shvdOtherV1Uppper