当前使用版本(必填,否则不予处理)

3.3.1.tmp

该问题是如何引起的?(确定最新版也有问题再提!!!)

SQL SERVER 2008 更新数据,使用自动填充字段值方式更新时间时,会使用函数now(),SQL SERVER不支持此函数

重现步骤(如果有就写完整)

更新使用的方法是在service调用updateById()方法。 自动填充使用的下面的方式: @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());// 起始版本 3.3.0(推荐使用) this.strictUpdateFill(metaObject, "updateUserId", Long.class, LoginUser.getUserId()); this.strictUpdateFill(metaObject, "updateUserName", String.class, LoginUser.getUserName()); //this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug请升级到之后的版本如3.3.1.8-SNAPSHOT) / 上面选其一使用,下面的已过时(注意 strictUpdateFill 有多个方法,详细查看源码) / //this.setFieldValByName("operator", "Tom", metaObject); //this.setUpdateFieldValByName("operator", "Tom", metaObject); }

报错信息

update_time=now(), update_user_id=?, update_user_name=? WHERE id=? AND del=0

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'now' 不是可以识别的 内置函数名称。

; uncategorized SQLException; SQL state [S00010]; error code [195]; 'now' 不是可以识别的 内置函数名称。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 'now' 不是可以识别的 内置函数名称。 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)

Comment From: miemieYaho

自动填充 不会生成任何函数,自己排查