From 0d337e10320e21178be33be5db6998ab763b5c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Tue, 17 Oct 2023 10:49:07 +0800 Subject: [PATCH] feat: add extraCondition config for RelationToOne annotations, close #I88MJU --- .../java/com/mybatisflex/annotation/RelationManyToOne.java | 6 ++++++ .../java/com/mybatisflex/annotation/RelationOneToOne.java | 5 +++++ .../main/java/com/mybatisflex/core/relation/ManyToOne.java | 1 + .../main/java/com/mybatisflex/core/relation/OneToOne.java | 1 + .../java/com/mybatisflex/core/relation/ToOneRelation.java | 5 +++-- 5 files changed, 16 insertions(+), 2 deletions(-) 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 475936a1..16282aec 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 @@ -103,6 +103,12 @@ public @interface RelationManyToOne { */ String dataSource() default ""; + + /** + * 查询时,追加的额外条件。 + */ + String extraCondition() default ""; + /** * 查询(加载)指定的列 */ 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 e9bca7d0..c1182490 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 @@ -103,6 +103,11 @@ public @interface RelationOneToOne { */ String dataSource() default ""; + /** + * 查询时,追加的额外条件。 + */ + String extraCondition() default ""; + /** * 查询(加载)指定的列 */ 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 3ffdf92b..0053f75f 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 @@ -34,6 +34,7 @@ class ManyToOne extends ToOneRelation { , annotation.dataSource() , entityClass , relationField + , annotation.extraCondition() , annotation.selectColumns()); } 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 9a2100fc..01160644 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 @@ -34,6 +34,7 @@ class OneToOne extends ToOneRelation { , annotation.dataSource() , entityClass , relationField + , annotation.extraCondition() , annotation.selectColumns()); } 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 591d79d6..110af204 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 @@ -26,11 +26,12 @@ class ToOneRelation extends AbstractRelation { 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) { + String dataSource, Class selfEntityClass, Field relationField, + String extraCondition,String[] selectColumns) { super(selfField, targetSchema, targetTable, targetField, valueField, joinTable, joinSelfColumn, joinTargetColumn, dataSource, selfEntityClass, relationField, - null, selectColumns + extraCondition, selectColumns ); }