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

相关推荐
阿拉斯攀登31 分钟前
MyBatis 全面解析 & Spring Boot 集成实战
java·spring boot·mybatis·持久层框架
自在极意功。6 小时前
深入剖析MyBatis事务管理机制:原理、配置与实践
java·数据库·mybatis·事务
坐不住的爱码7 小时前
mybatis-动态sql语句-<foreach>
java·sql·mybatis
0和1的舞者7 小时前
《MyBatis 从入门到上手:超全基础操作 + XML 配置指南》
数据库·spring boot·学习·spring·mybatis·框架·开发
过期动态8 小时前
JDBC进阶篇:拓展功能与连接池运用详解
java·开发语言·数据库·mysql·oracle·intellij-idea·mybatis
期待のcode14 小时前
MyBatisX插件
java·数据库·后端·mybatis·springboot
小二·20 小时前
MyBatis基础入门《十五》分布式事务实战:Seata + MyBatis 实现跨服务数据一致性
分布式·wpf·mybatis
小二·21 小时前
MyBatis基础入门《十四》多租户架构实战:基于 MyBatis 实现 SaaS 系统的动态数据隔离
数据库·架构·mybatis
小二·1 天前
MyBatis基础入门《十六》企业级插件实战:基于 MyBatis Interceptor 实现 SQL 审计、慢查询监控与数据脱敏
数据库·sql·mybatis
小二·1 天前
MyBatis基础入门《十二》批量操作优化:高效插入/更新万级数据,告别慢 SQL!
数据库·sql·mybatis