Browse Source

Merge pull request #4584 from Muyangmin/bugfix/assign-argument-not-match

[BugFix] 使用字符串类型注入 key 之前加上类型检查,避免类型不匹配导致注入失败。
qmdx 2 năm trước cách đây
mục cha
commit
7794cfcd79

+ 3 - 1
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisParameterHandler.java

@@ -146,8 +146,10 @@ public class MybatisParameterHandler implements ParameterHandler {
                         } else {
                         } else {
                             throw new MybatisPlusException("Key type '" + keyType + "' not supported");
                             throw new MybatisPlusException("Key type '" + keyType + "' not supported");
                         }
                         }
-                    } else {
+                    } else if (String.class.isAssignableFrom(keyType)) {
                         metaObject.setValue(keyProperty, identifierGenerator.nextId(entity).toString());
                         metaObject.setValue(keyProperty, identifierGenerator.nextId(entity).toString());
+                    } else {
+                        metaObject.setValue(keyProperty, identifierGenerator.nextId(entity));
                     }
                     }
                 } else if (idType.getKey() == IdType.ASSIGN_UUID.getKey()) {
                 } else if (idType.getKey() == IdType.ASSIGN_UUID.getKey()) {
                     metaObject.setValue(keyProperty, identifierGenerator.nextUUID(entity));
                     metaObject.setValue(keyProperty, identifierGenerator.nextUUID(entity));