diff --git a/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/annotation/Query.java b/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/annotation/Query.java index dc395684..0adb8eb6 100644 --- a/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/annotation/Query.java +++ b/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/annotation/Query.java @@ -16,6 +16,7 @@ package top.continew.starter.data.annotation; +import top.continew.starter.data.enums.LogicalRelation; import top.continew.starter.data.enums.QueryType; import java.lang.annotation.*; @@ -46,4 +47,9 @@ public @interface Query { * 查询类型(等值查询、模糊查询、范围查询等) */ QueryType type() default QueryType.EQ; + + /** + * 多列查询时的逻辑关系(仅当 columns 长度大于 1 时生效) + */ + LogicalRelation logicalRelation() default LogicalRelation.OR; } diff --git a/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/enums/LogicalRelation.java b/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/enums/LogicalRelation.java new file mode 100644 index 00000000..5c507d3c --- /dev/null +++ b/continew-starter-data/continew-starter-data-core/src/main/java/top/continew/starter/data/enums/LogicalRelation.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *
+ * http://www.gnu.org/licenses/lgpl.html + *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package top.continew.starter.data.enums;
+
+/**
+ * 逻辑关系枚举
+ *
+ * @author Charles7c
+ * @since 2.13.3
+ */
+public enum LogicalRelation {
+
+ /**
+ * 并且关系
+ */
+ AND,
+
+ /**
+ * 或者关系
+ */
+ OR
+}
\ No newline at end of file
diff --git a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/util/QueryWrapperHelper.java b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/util/QueryWrapperHelper.java
index fadabfb1..135f000d 100644
--- a/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/util/QueryWrapperHelper.java
+++ b/continew-starter-data/continew-starter-data-mp/src/main/java/top/continew/starter/data/util/QueryWrapperHelper.java
@@ -32,6 +32,7 @@ import top.continew.starter.core.util.validation.ValidationUtils;
import top.continew.starter.data.annotation.Query;
import top.continew.starter.data.annotation.QueryIgnore;
import top.continew.starter.data.enums.QueryType;
+import top.continew.starter.data.enums.LogicalRelation;
import java.lang.reflect.Field;
import java.util.ArrayList;
@@ -174,8 +175,21 @@ public class QueryWrapperHelper {
return consumers;
}
// 解析多列查询
+ LogicalRelation logicalRelation = queryAnnotation.logicalRelation();
+ List