Commit 5473de9f authored by liaozan's avatar liaozan 🏀

Set project charsets

parent dc6a4638
...@@ -20,6 +20,8 @@ public class BizIdColumnField { ...@@ -20,6 +20,8 @@ public class BizIdColumnField {
private final String columnName; private final String columnName;
private final Class<?> fieldType;
private final MethodHandle bizIdFieldGetterMethodHandle; private final MethodHandle bizIdFieldGetterMethodHandle;
private final MethodHandle bizIdFieldSetterMethodHandle; private final MethodHandle bizIdFieldSetterMethodHandle;
...@@ -27,8 +29,8 @@ public class BizIdColumnField { ...@@ -27,8 +29,8 @@ public class BizIdColumnField {
public BizIdColumnField(Class<?> entityClass, Field bizIdField) { public BizIdColumnField(Class<?> entityClass, Field bizIdField) {
this.annotation = bizIdField.getAnnotation(BizId.class); this.annotation = bizIdField.getAnnotation(BizId.class);
this.columnName = BizIdHelper.getColumnName(entityClass, bizIdField, this.annotation); this.columnName = BizIdHelper.getColumnName(entityClass, bizIdField, this.annotation);
this.fieldType = bizIdField.getType();
try { try {
Class<?> fieldType = bizIdField.getType();
Lookup lookup = privateLookupIn(entityClass, lookup()); Lookup lookup = privateLookupIn(entityClass, lookup());
this.bizIdFieldGetterMethodHandle = lookup.findGetter(entityClass, bizIdField.getName(), fieldType); this.bizIdFieldGetterMethodHandle = lookup.findGetter(entityClass, bizIdField.getName(), fieldType);
this.bizIdFieldSetterMethodHandle = lookup.findSetter(entityClass, bizIdField.getName(), fieldType); this.bizIdFieldSetterMethodHandle = lookup.findSetter(entityClass, bizIdField.getName(), fieldType);
...@@ -54,4 +56,8 @@ public class BizIdColumnField { ...@@ -54,4 +56,8 @@ public class BizIdColumnField {
} }
} }
} public Class<?> getFieldType() {
return fieldType;
}
}
\ No newline at end of file
package com.schbrain.framework.autoconfigure.mybatis.biz; package com.schbrain.framework.autoconfigure.mybatis.biz;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
import com.schbrain.common.exception.BaseException;
import org.apache.ibatis.executor.Executor; import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlCommandType; import org.apache.ibatis.mapping.SqlCommandType;
...@@ -32,9 +34,15 @@ public class BizIdInjectInterceptor implements InnerInterceptor { ...@@ -32,9 +34,15 @@ public class BizIdInjectInterceptor implements InnerInterceptor {
if (bizIdType == BizIdType.ID_WORKER) { if (bizIdType == BizIdType.ID_WORKER) {
Object bizIdValue = bizColumnField.getValue(entity); Object bizIdValue = bizColumnField.getValue(entity);
if (bizIdValue == null) { if (bizIdValue == null) {
bizColumnField.setValue(entity, bizIdType.generateBizId(entity)); Object generatedBizId = bizIdType.generateBizId(entity);
Class<?> bizIdFieldType = bizColumnField.getFieldType();
Object convertedBizId = Convert.convertQuietly(bizIdFieldType, generatedBizId, null);
if (convertedBizId == null) {
throw new BaseException(String.format("Cannot convert generated bizId value %s; From %s to %s", generatedBizId, generatedBizId.getClass(), bizIdFieldType));
}
bizColumnField.setValue(entity, convertedBizId);
} }
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment