update mybatis-flex-core/src/main/java/com/mybatisflex/core/keygen/CustomKeyGenerator.java.

fix: 修复实体类的父类含有泛型时,转换报错

close: https://github.com/mybatis-flex/mybatis-flex/issues/354


Signed-off-by: 最后 <244387066@qq.com>
This commit is contained in:
最后 2024-06-21 01:29:31 +00:00 committed by Gitee
parent 3ab14cb3a6
commit c9891f11c4
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -80,8 +80,10 @@ public class CustomKeyGenerator implements KeyGenerator {
MetaObject metaParam = configuration.newMetaObject(parameter); MetaObject metaParam = configuration.newMetaObject(parameter);
Object generateId = keyGenerator.generate(entity, idInfo.getColumn()); Object generateId = keyGenerator.generate(entity, idInfo.getColumn());
MetaObject metaObjectForProperty = metaParam.metaObjectForProperty(FlexConsts.ENTITY); MetaObject metaObjectForProperty = metaParam.metaObjectForProperty(FlexConsts.ENTITY);
Invoker setInvoker = tableInfo.getReflector().getSetInvoker(idInfo.getProperty()); // Invoker setInvoker = tableInfo.getReflector().getSetInvoker(idInfo.getProperty());
Object id = ConvertUtil.convert(generateId, setInvoker.getType()); // Object id = ConvertUtil.convert(generateId, setInvoker.getType());
Class<?> setterType = tableInfo.getReflector().getSetterType(idInfo.getProperty());
Object id = ConvertUtil.convert(generateId, setterType);
this.setValue(metaObjectForProperty, this.idInfo.getProperty(), id); this.setValue(metaObjectForProperty, this.idInfo.getProperty(), id);
} }
} catch (Exception e) { } catch (Exception e) {