Commit 5473de9f authored by liaozan's avatar liaozan 🏀

Set project charsets

parent dc6a4638
......@@ -20,6 +20,8 @@ public class BizIdColumnField {
private final String columnName;
private final Class<?> fieldType;
private final MethodHandle bizIdFieldGetterMethodHandle;
private final MethodHandle bizIdFieldSetterMethodHandle;
......@@ -27,8 +29,8 @@ public class BizIdColumnField {
public BizIdColumnField(Class<?> entityClass, Field bizIdField) {
this.annotation = bizIdField.getAnnotation(BizId.class);
this.columnName = BizIdHelper.getColumnName(entityClass, bizIdField, this.annotation);
this.fieldType = bizIdField.getType();
try {
Class<?> fieldType = bizIdField.getType();
Lookup lookup = privateLookupIn(entityClass, lookup());
this.bizIdFieldGetterMethodHandle = lookup.findGetter(entityClass, bizIdField.getName(), fieldType);
this.bizIdFieldSetterMethodHandle = lookup.findSetter(entityClass, bizIdField.getName(), fieldType);
......@@ -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;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
import com.schbrain.common.exception.BaseException;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlCommandType;
......@@ -32,7 +34,13 @@ public class BizIdInjectInterceptor implements InnerInterceptor {
if (bizIdType == BizIdType.ID_WORKER) {
Object bizIdValue = bizColumnField.getValue(entity);
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);
}
}
}
......
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