MybatisPlus insert使用数据库now()

操作步骤

  1. 自建com.baomidou.mybatisplus.core.metadata.TableFieldInfo类,注意包名不可变
  2. 修改getInsertSqlPropertyMaybeIf方法,复用com.baomidou.mybatisplus.annotation.TableField注解的update参数
修改方法
public String getInsertSqlPropertyMaybeIf(final String prefix) {
        final String newPrefix = prefix == null ? EMPTY : prefix;
        String sqlScript = getInsertSqlProperty(newPrefix);
        if (withInsertFill) {
            //modify begin
            if (StringUtils.isNotBlank(update)) {
                return update;
            } else {
                return sqlScript;
            }
            //modify end
        }
        return convertIf(sqlScript, newPrefix + property, insertStrategy);
    }
实体类
public class BasePo {
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT, update = "now(3)")
    private Date createTime;

    /**
     * 最后更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE, update = "now(3)")
    private Date updateTime;
}
  1. 如果没有生效,可能需要注意类的加载顺序
  2. update中可以是任何数据库函数或者语句
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章