mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
fix: 修复配置全局配置默认的 id 为 auto 时,不生效的问题,close #I7QOD3
This commit is contained in:
parent
f43bb61d92
commit
22ca55f25f
@ -17,6 +17,8 @@ package com.mybatisflex.core.table;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.KeyType;
|
||||
import com.mybatisflex.core.FlexGlobalConfig;
|
||||
import com.mybatisflex.core.util.StringUtil;
|
||||
|
||||
public class IdInfo extends ColumnInfo {
|
||||
|
||||
@ -53,16 +55,38 @@ public class IdInfo extends ColumnInfo {
|
||||
if (Number.class.isAssignableFrom(columnInfo.getPropertyType())) {
|
||||
keyType = KeyType.Auto;
|
||||
} else {
|
||||
keyType = KeyType.None;
|
||||
initDefaultKeyType();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public IdInfo(Id id) {
|
||||
this.keyType = id.keyType();
|
||||
this.value = id.value();
|
||||
this.before = id.before();
|
||||
|
||||
initDefaultKeyType();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户未配置 keyType 是,配置默认的 key Type
|
||||
*/
|
||||
private void initDefaultKeyType() {
|
||||
if (this.keyType == null || this.keyType == KeyType.None) {
|
||||
FlexGlobalConfig.KeyConfig defaultKeyConfig = FlexGlobalConfig.getDefaultConfig().getKeyConfig();
|
||||
if (defaultKeyConfig != null) {
|
||||
if (defaultKeyConfig.getKeyType() != null) {
|
||||
this.keyType = defaultKeyConfig.getKeyType();
|
||||
this.before = defaultKeyConfig.isBefore();
|
||||
}
|
||||
if (StringUtil.isBlank(this.value) && StringUtil.isNotBlank(defaultKeyConfig.getValue())) {
|
||||
this.value = defaultKeyConfig.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public KeyType getKeyType() {
|
||||
return keyType;
|
||||
}
|
||||
|
||||
@ -370,11 +370,14 @@ public class TableInfo {
|
||||
this.primaryColumns = new String[primaryKeyList.size()];
|
||||
|
||||
List<String> insertIdFields = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < primaryKeyList.size(); i++) {
|
||||
IdInfo idInfo = primaryKeyList.get(i);
|
||||
primaryColumns[i] = idInfo.getColumn();
|
||||
|
||||
if (idInfo.getKeyType() != KeyType.Auto && (idInfo.getBefore() != null && idInfo.getBefore())) {
|
||||
if (idInfo.getKeyType() != KeyType.Auto
|
||||
|| (idInfo.getBefore() != null && idInfo.getBefore())
|
||||
) {
|
||||
insertIdFields.add(idInfo.getColumn());
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user