mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-11 00:02:22 +08:00
fix 主键字段映射错误
This commit is contained in:
parent
6c60769c5e
commit
14a0448b6a
@ -17,7 +17,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字段属性
|
* 字段属性
|
||||||
@ -162,9 +161,14 @@ public class MPJTableFieldInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initBindField(String bindName) {
|
private void initBindField(String bindName) {
|
||||||
Field field = TableInfoHelper.getTableInfo(this.joinClass).getFieldList().stream()
|
TableInfo info = TableInfoHelper.getTableInfo(this.joinClass);
|
||||||
|
Field field = info.getFieldList().stream()
|
||||||
.filter(i -> i.getColumn().equals(bindName))
|
.filter(i -> i.getColumn().equals(bindName))
|
||||||
.map(TableFieldInfo::getField).findFirst().orElse(null);
|
.map(TableFieldInfo::getField).findFirst().orElse(null);
|
||||||
|
if (field == null && bindName.equals(info.getKeyColumn())) {
|
||||||
|
this.bindField = ReflectionKit.getFieldList(joinClass).stream().filter(f ->
|
||||||
|
f.getName().equals(info.getKeyProperty())).findFirst().orElse(null);
|
||||||
|
}
|
||||||
if (field == null) {
|
if (field == null) {
|
||||||
throw new MPJException("字段不存在 " + this.joinClass.getName() + " ," + bindName);
|
throw new MPJException("字段不存在 " + this.joinClass.getName() + " ," + bindName);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||||
import com.github.yulichang.config.InterceptorConfig;
|
|
||||||
import com.github.yulichang.interfaces.MPJBaseJoin;
|
import com.github.yulichang.interfaces.MPJBaseJoin;
|
||||||
import com.github.yulichang.method.MPJResultType;
|
import com.github.yulichang.method.MPJResultType;
|
||||||
import com.github.yulichang.toolkit.Constant;
|
import com.github.yulichang.toolkit.Constant;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.github.yulichang.method;
|
package com.github.yulichang.method;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
|
|
||||||
import org.apache.ibatis.mapping.MappedStatement;
|
import org.apache.ibatis.mapping.MappedStatement;
|
||||||
import org.apache.ibatis.mapping.SqlSource;
|
import org.apache.ibatis.mapping.SqlSource;
|
||||||
|
|
||||||
|
@ -36,12 +36,11 @@ public enum SqlMethod {
|
|||||||
"<script>\n%s SELECT %s FROM %s %s %s %s %s\n</script>");
|
"<script>\n%s SELECT %s FROM %s %s %s %s %s\n</script>");
|
||||||
|
|
||||||
private final String method;
|
private final String method;
|
||||||
private final String desc;
|
|
||||||
private final String sql;
|
private final String sql;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
SqlMethod(String method, String desc, String sql) {
|
SqlMethod(String method, String desc, String sql) {
|
||||||
this.method = method;
|
this.method = method;
|
||||||
this.desc = desc;
|
|
||||||
this.sql = sql;
|
this.sql = sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,9 +48,6 @@ public enum SqlMethod {
|
|||||||
return method;
|
return method;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDesc() {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSql() {
|
public String getSql() {
|
||||||
return sql;
|
return sql;
|
||||||
|
@ -186,6 +186,7 @@ public class MPJLambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, MPJLambda
|
|||||||
* @param clazz 表实体
|
* @param clazz 表实体
|
||||||
* @param as 表别名
|
* @param as 表别名
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("DuplicatedCode")
|
||||||
public final MPJLambdaQueryWrapper<T> selectAll(Class<?> clazz, String as) {
|
public final MPJLambdaQueryWrapper<T> selectAll(Class<?> clazz, String as) {
|
||||||
TableInfo info = TableInfoHelper.getTableInfo(clazz);
|
TableInfo info = TableInfoHelper.getTableInfo(clazz);
|
||||||
Assert.notNull(info, "can not find table info");
|
Assert.notNull(info, "can not find table info");
|
||||||
|
@ -15,15 +15,16 @@
|
|||||||
*/
|
*/
|
||||||
package com.github.yulichang.toolkit;
|
package com.github.yulichang.toolkit;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.*;
|
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
|
||||||
import org.apache.ibatis.logging.Log;
|
import org.apache.ibatis.logging.Log;
|
||||||
import org.apache.ibatis.logging.LogFactory;
|
import org.apache.ibatis.logging.LogFactory;
|
||||||
import org.springframework.core.GenericTypeResolver;
|
import org.springframework.core.GenericTypeResolver;
|
||||||
|
|
||||||
import java.lang.reflect.AccessibleObject;
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.security.AccessController;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -140,11 +141,11 @@ public final class ReflectionKit {
|
|||||||
* 中间表实体重写父类属性 ` private transient Date createTime; `
|
* 中间表实体重写父类属性 ` private transient Date createTime; `
|
||||||
*/
|
*/
|
||||||
return fieldMap.values().stream()
|
return fieldMap.values().stream()
|
||||||
/* 过滤静态属性 */
|
/* 过滤静态属性 */
|
||||||
.filter(f -> !Modifier.isStatic(f.getModifiers()))
|
.filter(f -> !Modifier.isStatic(f.getModifiers()))
|
||||||
/* 过滤 transient关键字修饰的属性 */
|
/* 过滤 transient关键字修饰的属性 */
|
||||||
.filter(f -> !Modifier.isTransient(f.getModifiers()))
|
.filter(f -> !Modifier.isTransient(f.getModifiers()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,12 +160,12 @@ public final class ReflectionKit {
|
|||||||
public static Map<String, Field> excludeOverrideSuperField(Field[] fields, List<Field> superFieldList) {
|
public static Map<String, Field> excludeOverrideSuperField(Field[] fields, List<Field> superFieldList) {
|
||||||
// 子类属性
|
// 子类属性
|
||||||
Map<String, Field> fieldMap = Stream.of(fields).collect(toMap(Field::getName, identity(),
|
Map<String, Field> fieldMap = Stream.of(fields).collect(toMap(Field::getName, identity(),
|
||||||
(u, v) -> {
|
(u, v) -> {
|
||||||
throw new IllegalStateException(String.format("Duplicate key %s", u));
|
throw new IllegalStateException(String.format("Duplicate key %s", u));
|
||||||
},
|
},
|
||||||
LinkedHashMap::new));
|
LinkedHashMap::new));
|
||||||
superFieldList.stream().filter(field -> !fieldMap.containsKey(field.getName()))
|
superFieldList.stream().filter(field -> !fieldMap.containsKey(field.getName()))
|
||||||
.forEach(f -> fieldMap.put(f.getName(), f));
|
.forEach(f -> fieldMap.put(f.getName(), f));
|
||||||
return fieldMap;
|
return fieldMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user