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

相关推荐
耀耀_很无聊5 小时前
07_通过 Mybatis 自动填充记录的创建时间和更新时间
mybatis
程序员张36 小时前
SQL分析与打印-p6spy组件
spring boot·sql·mybatis·mybatisplus·p6spy
喜欢敲代码的程序员1 天前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
一只猿Hou2 天前
java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践
java·mybatis
java—大象11 天前
基于java SSM的房屋租赁系统设计和实现
java·开发语言·数据库·spring boot·layui·mybatis
Mutig_s11 天前
Spring Boot动态数据源切换:优雅实现多数据源管理
java·数据库·spring boot·后端·mybatis
编程乐学(Arfan开发工程师)11 天前
73、单元测试-断言机制
服务器·数据库·servlet·单元测试·sqlite·log4j·mybatis
小时候的阳光12 天前
MyBatis 的一级缓存导致的数据一致性问题分析
缓存·mybatis·事务·隔离级别
烙印60112 天前
MyBatis原理剖析(三)--加载配置文件
服务器·tomcat·mybatis