From 0f4f31a30e7cc3d945b0e71410cd280e33893fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Mon, 18 Sep 2023 09:11:20 +0800 Subject: [PATCH] refactor: rename "targetFieldBind" to "valueField" --- docs/zh/base/relations-query.md | 12 +++---- .../annotation/RelationManyToMany.java | 2 +- .../annotation/RelationManyToOne.java | 2 +- .../annotation/RelationOneToMany.java | 2 +- .../annotation/RelationOneToOne.java | 2 +- .../core/relation/AbstractRelation.java | 32 ++++++++++--------- .../mybatisflex/core/relation/ManyToMany.java | 2 +- .../mybatisflex/core/relation/ManyToOne.java | 2 +- .../mybatisflex/core/relation/OneToMany.java | 2 +- .../mybatisflex/core/relation/OneToOne.java | 2 +- .../core/relation/RelationManager.java | 2 +- .../core/relation/ToManyRelation.java | 8 ++--- .../core/relation/ToOneRelation.java | 8 ++--- .../com/mybatisflex/test/model/UserVO5.java | 6 ++-- 14 files changed, 43 insertions(+), 41 deletions(-) diff --git a/docs/zh/base/relations-query.md b/docs/zh/base/relations-query.md index 3faec96b..ba7be855 100644 --- a/docs/zh/base/relations-query.md +++ b/docs/zh/base/relations-query.md @@ -354,7 +354,7 @@ public class Account implements Serializable { Relation结果集只使用某个字段值-`since v1.6.6` -`RelationOneToOne`、`RelationOneToMany`、`RelationManyToOne`、`RelationManyToMany`新增属性`targetFieldBind` +`RelationOneToOne`、`RelationOneToMany`、`RelationManyToOne`、`RelationManyToMany`新增属性`valueField` ```java {7-11} /** * 目标对象的关系实体类的属性绑定 @@ -362,9 +362,9 @@ Relation结果集只使用某个字段值-`since v1.6.6` * 当字段不为空串时,只进行某个字段赋值(使用对应字段类型接收) * @return 属性名称 */ - String targetFieldBind() default ""; + String valueField() default ""; ``` -> 注解其他属性配置使用不变,当配置了`targetFieldBind`值时,只提取目标对象关系实体类的该属性 +> 注解其他属性配置使用不变,当配置了`valueField`值时,只提取目标对象关系实体类的该属性 > > 注意:因为不是对象接收,所以该配置需要强制配置注解`targetTable`属性(因为是某个字段接收,并不是某个实体对应的表,所以需要增加`targetTable`获取目标表信息) > @@ -389,7 +389,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_id_card", targetField = "id", - targetFieldBind = "idNumber" + valueField = "idNumber" ) //该处可以定义其他属性名,不一定要是目标对象的字段名 private String idNumberCustomFieldName; @@ -398,7 +398,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_user_order", targetField = "userId", - targetFieldBind = "orderId" + valueField = "orderId" ) private List orderIdList; @@ -406,7 +406,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_role", targetField = "roleId", - targetFieldBind = "roleName", + valueField = "roleName", joinTable = "tb_user_role", joinSelfColumn = "user_id", joinTargetColumn = "role_id" diff --git a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToMany.java b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToMany.java index 60a7ee85..64d5448f 100644 --- a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToMany.java +++ b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToMany.java @@ -73,7 +73,7 @@ public @interface RelationManyToMany { * 当字段不为空串时,只进行某个字段赋值(使用对应字段类型接收) * @return 属性名称 */ - String targetFieldBind() default ""; + String valueField() default ""; /** * 当映射是一个 map 时,使用哪个内容来当做 map 的 Key diff --git a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToOne.java b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToOne.java index 5f605e62..475936a1 100644 --- a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToOne.java +++ b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationManyToOne.java @@ -73,7 +73,7 @@ public @interface RelationManyToOne { * 当字段不为空串时,只进行某个字段赋值(使用对应字段类型接收) * @return 属性名称 */ - String targetFieldBind() default ""; + String valueField() default ""; /** * 中间表名称,一对一的关系是通过通过中间表维护时,需要添加此项配置。 diff --git a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToMany.java b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToMany.java index 29730ab9..35314fae 100644 --- a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToMany.java +++ b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToMany.java @@ -73,7 +73,7 @@ public @interface RelationOneToMany { * 当字段不为空串时,只进行某个字段赋值(使用对应字段类型接收) * @return 属性名称 */ - String targetFieldBind() default ""; + String valueField() default ""; /** * 当映射是一个 map 时,使用哪个内容来当做 map 的 Key diff --git a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToOne.java b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToOne.java index 895e36d2..e9bca7d0 100644 --- a/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToOne.java +++ b/mybatis-flex-annotation/src/main/java/com/mybatisflex/annotation/RelationOneToOne.java @@ -73,7 +73,7 @@ public @interface RelationOneToOne { * 当字段不为空串时,只进行某个字段赋值(使用对应字段类型接收) * @return 属性名称 */ - String targetFieldBind() default ""; + String valueField() default ""; /** * 中间表名称,一对一的关系是通过通过中间表维护时,需要添加此项配置。 diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/AbstractRelation.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/AbstractRelation.java index 653614da..7cac0dd1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/AbstractRelation.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/AbstractRelation.java @@ -46,8 +46,10 @@ abstract class AbstractRelation { protected String targetSchema; protected String targetTable; protected Field targetField; - protected String targetFieldBind; - protected boolean onlyTargetFieldBind; + + protected String valueField; + protected boolean onlyQueryValueField; + protected Class targetEntityClass; protected TableInfo targetTableInfo; protected FieldWrapper targetFieldWrapper; @@ -64,7 +66,7 @@ abstract class AbstractRelation { protected QueryColumn conditionColumn; protected String[] selectColumns; - public AbstractRelation(String selfField, String targetSchema, String targetTable, String targetField, String targetFieldBind, + public AbstractRelation(String selfField, String targetSchema, String targetTable, String targetField, String valueField, String joinTable, String joinSelfColumn, String joinTargetColumn, String dataSource, Class entityClass, Field relationField, String extraCondition, String[] selectColumns @@ -93,14 +95,14 @@ abstract class AbstractRelation { this.targetField = ClassUtil.getFirstField(targetEntityClass, field -> field.getName().equals(targetField)); this.targetFieldWrapper = FieldWrapper.of(targetEntityClass, targetField); - this.targetFieldBind = targetFieldBind; - this.onlyTargetFieldBind = StringUtil.isNotBlank(targetFieldBind); + this.valueField = valueField; + this.onlyQueryValueField = StringUtil.isNotBlank(valueField); this.conditionColumn = column(targetTable, targetTableInfo.getColumnByProperty(this.targetField.getName())); - if (onlyTargetFieldBind) { + if (onlyQueryValueField) { //仅绑定字段时只需要查询关联列和该字段列即可 - this.selectColumns = new String[]{conditionColumn.getName(), targetTableInfo != null ? targetTableInfo.getColumnByProperty(this.targetFieldBind) : StringUtil.camelToUnderline(this.targetFieldBind)}; + this.selectColumns = new String[]{conditionColumn.getName(), targetTableInfo != null ? targetTableInfo.getColumnByProperty(this.valueField) : StringUtil.camelToUnderline(this.valueField)}; } else { if (ArrayUtil.isNotEmpty(selectColumns)) { if (ArrayUtil.contains(selectColumns, conditionColumn.getName())) { @@ -259,20 +261,20 @@ abstract class AbstractRelation { this.targetTable = targetTable; } - public String getTargetFieldBind() { - return targetFieldBind; + public String getValueField() { + return valueField; } - public void setTargetFieldBind(String targetFieldBind) { - this.targetFieldBind = targetFieldBind; + public void setValueField(String valueField) { + this.valueField = valueField; } - public boolean isOnlyTargetFieldBind() { - return onlyTargetFieldBind; + public boolean isOnlyQueryValueField() { + return onlyQueryValueField; } - public void setOnlyTargetFieldBind(boolean onlyTargetFieldBind) { - this.onlyTargetFieldBind = onlyTargetFieldBind; + public void setOnlyQueryValueField(boolean onlyQueryValueField) { + this.onlyQueryValueField = onlyQueryValueField; } public String getJoinTable() { diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToMany.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToMany.java index 69fbd813..75229d19 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToMany.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToMany.java @@ -26,7 +26,7 @@ class ManyToMany extends ToManyRelation { , annotation.targetSchema() , annotation.targetTable() , getDefaultPrimaryProperty(annotation.targetField(), getTargetEntityClass(entityClass, relationField), "@RelationManyToMany.targetField can not be empty in field: \"" + entityClass.getName() + "." + relationField.getName() + "\"") - , annotation.targetFieldBind() + , annotation.valueField() , annotation.joinTable() , annotation.joinSelfColumn() , annotation.joinTargetColumn() diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToOne.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToOne.java index a49071c5..3ffdf92b 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToOne.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ManyToOne.java @@ -27,7 +27,7 @@ class ManyToOne extends ToOneRelation { , annotation.targetTable() , getDefaultPrimaryProperty(annotation.targetField(), getTargetEntityClass(entityClass, relationField) , "@RelationManyToOne.selfField can not be empty in field: \"" + entityClass.getName() + "." + relationField.getName() + "\"") - , annotation.targetFieldBind() + , annotation.valueField() , annotation.joinTable() , annotation.joinSelfColumn() , annotation.joinTargetColumn() diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToMany.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToMany.java index a50cc48e..08e8472a 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToMany.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToMany.java @@ -27,7 +27,7 @@ class OneToMany extends ToManyRelation { , annotation.targetSchema() , annotation.targetTable() , annotation.targetField() - , annotation.targetFieldBind() + , annotation.valueField() , annotation.joinTable() , annotation.joinSelfColumn() , annotation.joinTargetColumn() diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToOne.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToOne.java index bf90c3a1..9a2100fc 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToOne.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/OneToOne.java @@ -27,7 +27,7 @@ class OneToOne extends ToOneRelation { , annotation.targetSchema() , annotation.targetTable() , annotation.targetField() - , annotation.targetFieldBind() + , annotation.valueField() , annotation.joinTable() , annotation.joinSelfColumn() , annotation.joinTargetColumn() diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/RelationManager.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/RelationManager.java index 26cb6ce1..3264b676 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/RelationManager.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/RelationManager.java @@ -361,7 +361,7 @@ public class RelationManager { //仅绑定字段:As目标实体类 不进行字段绑定:As映射类型 QueryWrapper queryWrapper = relation.buildQueryWrapper(targetValues); - List targetObjectList = mapper.selectListByQueryAs(queryWrapper, relation.isOnlyTargetFieldBind() ? relation.getTargetEntityClass() : relation.getMappingType()); + List targetObjectList = mapper.selectListByQueryAs(queryWrapper, relation.isOnlyQueryValueField() ? relation.getTargetEntityClass() : relation.getMappingType()); if (CollectionUtil.isNotEmpty(targetObjectList)) { //递归查询 diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToManyRelation.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToManyRelation.java index f8f2e8ae..0eb6756b 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToManyRelation.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToManyRelation.java @@ -31,11 +31,11 @@ class ToManyRelation extends AbstractRelation { protected long limit = 0; - public ToManyRelation(String selfField, String targetSchema, String targetTable, String targetField, String targetFieldBind, + public ToManyRelation(String selfField, String targetSchema, String targetTable, String targetField, String valueField, String joinTable, String joinSelfColumn, String joinTargetColumn, String dataSource, Class selfEntityClass, Field relationField, String extraCondition, String[] selectColumns) { - super(selfField, targetSchema, targetTable, targetField, targetFieldBind, + super(selfField, targetSchema, targetTable, targetField, valueField, joinTable, joinSelfColumn, joinTargetColumn, dataSource, selfEntityClass, relationField, extraCondition, selectColumns @@ -101,9 +101,9 @@ class ToManyRelation extends AbstractRelation { for (Object targetObject : targetObjectList) { Object targetValue = targetFieldWrapper.get(targetObject); if (targetValue != null && targetMappingValues.contains(targetValue.toString())) { - if (onlyTargetFieldBind) { + if (onlyQueryValueField) { //仅绑定某个字段 - collection.add(FieldWrapper.of(targetObject.getClass(), targetFieldBind).get(targetObject)); + collection.add(FieldWrapper.of(targetObject.getClass(), valueField).get(targetObject)); } else { collection.add(targetObject); } diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToOneRelation.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToOneRelation.java index f04de754..591d79d6 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToOneRelation.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/relation/ToOneRelation.java @@ -24,10 +24,10 @@ import java.util.List; class ToOneRelation extends AbstractRelation { - public ToOneRelation(String selfField, String targetSchema, String targetTable, String targetField, String targetFieldBind, + public ToOneRelation(String selfField, String targetSchema, String targetTable, String targetField, String valueField, String joinTable, String joinSelfColumn, String joinTargetColumn, String dataSource, Class selfEntityClass, Field relationField, String[] selectColumns) { - super(selfField, targetSchema, targetTable, targetField, targetFieldBind, + super(selfField, targetSchema, targetTable, targetField, valueField, joinTable, joinSelfColumn, joinTargetColumn, dataSource, selfEntityClass, relationField, null, selectColumns @@ -54,9 +54,9 @@ class ToOneRelation extends AbstractRelation { for (Object targetObject : targetObjectList) { Object targetValue = targetFieldWrapper.get(targetObject); if (targetValue != null && targetMappingValue.equals(targetValue.toString())) { - if (onlyTargetFieldBind) { + if (onlyQueryValueField) { //仅绑定某个字段 - relationFieldWrapper.set(FieldWrapper.of(targetObject.getClass(), targetFieldBind).get(targetObject), selfEntity); + relationFieldWrapper.set(FieldWrapper.of(targetObject.getClass(), valueField).get(targetObject), selfEntity); } else { relationFieldWrapper.set(targetObject, selfEntity); } diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO5.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO5.java index 3ca6fd9c..bac33783 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO5.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/UserVO5.java @@ -23,7 +23,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_id_card", targetField = "id", - targetFieldBind = "idNumber" + valueField = "idNumber" ) private String idNumberCustomFieldName; @@ -31,7 +31,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_user_order", targetField = "userId", - targetFieldBind = "orderId" + valueField = "orderId" ) private List orderIdList; @@ -39,7 +39,7 @@ public class UserVO5 implements Serializable { selfField = "userId", targetTable = "tb_role", targetField = "roleId", - targetFieldBind = "roleName", + valueField = "roleName", joinTable = "tb_user_role", joinSelfColumn = "user_id", joinTargetColumn = "role_id"