MyBatis-Plus的MetaObjectHandler的一些问题
MetaObjectHandler在实现审计方面的数据操作是比较方便的,使开发者可以大大减少对审计数据填充,减轻代码的量。
但是在使用方面有以下特点,一定要注意
如果在@TableField中,字段指定了fill的动作,那么这个字段就给MetaObjectHandler管理,对应动作的字段就会在sql中,无论是否该字段null值,除非在MetaObjectHandler做了特殊处理。
例如我在Bean中加入以下代码
@TableField( fill = FieldFill.INSERT, typeHandler = DateTimeTypeHandler.class ) private DateTime createTime;
这个createTime字段在更新或插入就会被MetaObjectHandler管理,当数据库中create_time的设置如下:
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建日期',
这样如果在业务中的对象为的createTime的值null时,如果MetaObjectHandler不对createTime做处理时,这时候调用mybatis-plus的insert会报create_time不能为空的异常。
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号