mybatis手写insert跟update重写mybatis的handle方法设置默认值不生效

java 复制代码
@Data
@Accessors(chain = true)
@TableName("mrp_flowmeter")
public class MrpFlowmeter implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "water_meter_id", type = IdType.ID_WORKER_STR)
    private String waterMeterId;
	
    @TableField(value = "enterprise_Id",fill = FieldFill.INSERT)
    private String enterpriseId;
    
    @TableField(value = "create_uid",fill = FieldFill.INSERT)
    private String createUid;
    
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(value = "modify_uid",fill = FieldFill.INSERT_UPDATE)
    private String modifyUid;
    
    @TableField(value = "modify_time",fill = FieldFill.INSERT_UPDATE)
    private Date modifyTime;
}
sql 复制代码
    <insert id="insertBatchMrpFlowmeter">
        INSERT INTO mrp_flowmeter (
            water_meter_id,
            bxwell_id,
            group_id,
            bxwell_remark,
            flowmeter_num,
            enterprise_Id,
            dict_wms,
            val,
            caliber,
            dict_ct,
            meter_x,
            meter_y,
            longitude_and_latitude_gis,
            meter_address,
            cycle_val,
            create_uid,
            create_time,
            modify_uid,
            modify_time)VALUES
        <foreach collection="list" item="item" separator=",">
            (
            #{item.waterMeterId},
            #{item.bxwellId},
            #{item.groupId},
            #{item.bxwellRemark},
            #{item.flowmeterNum},
            #{item.enterpriseId},
            #{item.dictWms},
            #{item.val},
            #{item.caliber},
            #{item.dictCt},
            #{item.meterX},
            #{item.meterY},
            ST_GeomFromText(#{item.longitudeAndLatitudeGis}),
            #{item.meterAddress},
            #{item.cycleVal},
            #{item.createUid},
            #{item.createTime},
            #{item.modifyUid},
            #{item.modifyTime}
            )
        </foreach>
    </insert>
	<update id="updateMrpFlowmeter">
	        UPDATE mrp_flowmeter
	        SET bxwell_id =#{bxwellId},
	            group_id =#{groupId},
	            bxwell_remark =#{bxwellRemark},
	            flowmeter_num =#{flowmeterNum},
	            dict_wms =#{dictWms},
	            val =#{val},
	            caliber =#{caliber},
	            dict_ct =#{dictCt},
	            meter_x =#{meterX},
	            meter_y =#{meterY},
	            longitude_and_latitude_gis =ST_GeomFromText(#{longitudeAndLatitudeGis}),
	            meter_address =#{meterAddress},
	            cycle_val =#{cycleVal},
	            modify_uid =#{modifyUid},
	            modify_time =#{modifyTime}
	        WHERE
	            water_meter_id = #{waterMeterId}
	          AND del_flag = '0'
	    </update>

我在service类里调用mapper类的insert跟update类操作数据之后,通用mybatis的自动生成值的方法,没有设置默认值。

原因在mapper层的方法参数里我加了@param(),我重写的mybatis的Handler类设置生成id,生成创建人修改人没有生成值。应该把@param()去掉。

sql 复制代码
//正确
Integer insertBatchMrpFlowmeter(List<MrpFlowmeter> list);
sql 复制代码
//错误
Integer insertBatchMrpFlowmeter(@param("list")List<MrpFlowmeter> list);

在这里有我重写的mybatis的自动生成创建人修改人的类 https://blog.csdn.net/hanjiaqian/article/details/109326009

相关推荐
Mr_hwt_123几秒前
基于mybatis-plus动态数据源实现mysql集群读写分离和从库负载均衡教程(详细案例)
数据库·spring boot·mysql·mybatis·mysql集群
Z_z在努力12 小时前
【杂类】Spring 自动装配原理
java·spring·mybatis
little_xianzhong16 小时前
关于对逾期提醒的定时任务~改进完善
java·数据库·spring boot·spring·mybatis
MadPrinter19 小时前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
奔跑吧邓邓子21 小时前
【Java实战㉟】Spring Boot与MyBatis:数据库交互的进阶之旅
java·spring boot·实战·mybatis·数据库交互
lunzi_fly1 天前
【源码解读之 Mybatis】【基础篇】-- 第1篇:MyBatis 整体架构设计
java·mybatis
摸鱼仙人~1 天前
深入理解 MyBatis-Plus 的 `BaseMapper`
java·开发语言·mybatis
隔壁阿布都1 天前
spring boot + mybatis 使用线程池异步修改数据库数据
数据库·spring boot·mybatis
Mcband2 天前
MyBatis 拦截器让搞定监控、脱敏和权限控制
mybatis
╭╰4022 天前
苍穹外卖优化-续
java·spring·mybatis