Skip to content

Commit 83bfb9f

Browse files
committed
解决乐观锁使用 Timestamp 类型时的赋值错误,使用 <bind> 标签临时存储值,sql 中通过 #{} 赋值解决。
1 parent eeb84eb commit 83bfb9f

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

core/src/main/java/tk/mybatis/mapper/mapperhelper/SqlHelper.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -490,14 +490,15 @@ public static String updateSetColumns(Class<?> entityClass, String entityName, b
490490
if (column == versionColumn) {
491491
Version version = versionColumn.getEntityField().getAnnotation(Version.class);
492492
String versionClass = version.nextVersion().getCanonicalName();
493+
sql.append("<bind name=\"").append(column.getProperty()).append("Version\" value=\"");
493494
//version = ${@tk.mybatis.mapper.version@nextVersionClass("versionClass", version)}
494-
sql.append(column.getColumn())
495-
.append(" = ${@tk.mybatis.mapper.version.VersionUtil@nextVersion(")
496-
.append("@").append(versionClass).append("@class, ");
497-
if (StringUtil.isNotEmpty(entityName)) {
498-
sql.append(entityName).append(".");
499-
}
500-
sql.append(column.getProperty()).append(")},");
495+
sql.append("@tk.mybatis.mapper.version.VersionUtil@nextVersion(")
496+
.append("@").append(versionClass).append("@class, ");
497+
if (StringUtil.isNotEmpty(entityName)) {
498+
sql.append(entityName).append(".");
499+
}
500+
sql.append(column.getProperty()).append(")\"/>");
501+
sql.append(column.getColumn()).append(" = #{").append(column.getProperty()).append("Version},");
501502
} else if (column == logicDeleteColumn) {
502503
sql.append(logicDeleteColumnEqualsValue(column, false)).append(",");
503504
} else if (notNull) {

0 commit comments

Comments
 (0)