修改前

protected Object getUpdatedVersionVal(Class<?> clazz, Object originalVersionVal) {
    if (long.class.equals(clazz) || Long.class.equals(clazz)) {
        return ((long) originalVersionVal) + 1;
    } else if (int.class.equals(clazz) || Integer.class.equals(clazz)) {
        return ((int) originalVersionVal) + 1;
    } else if (Date.class.equals(clazz)) {
        return new Date();
    } else if (Timestamp.class.equals(clazz)) {
        return new Timestamp(System.currentTimeMillis());
    } else if (LocalDateTime.class.equals(clazz)) {
        return LocalDateTime.now();
    }
    //not supported type, return original val.
    return originalVersionVal;
}

修改后 protected Object getUpdatedVersionVal(Class<?> clazz, Object originalVersionVal) { if (long.class.equals(clazz) || Long.class.equals(clazz)) { return ((long) originalVersionVal) + 1; } else if (int.class.equals(clazz) || Integer.class.equals(clazz)) { return ((int) originalVersionVal) + 1; } else if (Date.class.equals(clazz)) { return new Date(); } else if (Timestamp.class.equals(clazz)) { return new Timestamp(System.currentTimeMillis()); } else if (LocalDateTime.class.equals(clazz)) { return LocalDateTime.now(); }else if (Instant.class.equals(clazz)) { return Instant.now(); } //not supported type, return original val. return originalVersionVal; }

Comment From: qmdx

https://github.com/baomidou/mybatis-plus/commit/7c4ffa391245ce9c14bf3570ac4fdd1b2482ce72

Comment From: TanqiZhou

MyBatis-Plus 可以加入jdk1.8的Instant乐观锁支持吗? 这个样类不对吧