feat: add extraCondition config for RelationToOne annotations, close #I88MJU

This commit is contained in:
开源海哥 2023-10-17 10:49:07 +08:00
parent fa256234d1
commit 0d337e1032
5 changed files with 16 additions and 2 deletions

View File

@ -103,6 +103,12 @@ public @interface RelationManyToOne {
*/ */
String dataSource() default ""; String dataSource() default "";
/**
* 查询时追加的额外条件
*/
String extraCondition() default "";
/** /**
* 查询加载指定的列 * 查询加载指定的列
*/ */

View File

@ -103,6 +103,11 @@ public @interface RelationOneToOne {
*/ */
String dataSource() default ""; String dataSource() default "";
/**
* 查询时追加的额外条件
*/
String extraCondition() default "";
/** /**
* 查询加载指定的列 * 查询加载指定的列
*/ */

View File

@ -34,6 +34,7 @@ class ManyToOne<SelfEntity> extends ToOneRelation<SelfEntity> {
, annotation.dataSource() , annotation.dataSource()
, entityClass , entityClass
, relationField , relationField
, annotation.extraCondition()
, annotation.selectColumns()); , annotation.selectColumns());
} }

View File

@ -34,6 +34,7 @@ class OneToOne<SelfEntity> extends ToOneRelation<SelfEntity> {
, annotation.dataSource() , annotation.dataSource()
, entityClass , entityClass
, relationField , relationField
, annotation.extraCondition()
, annotation.selectColumns()); , annotation.selectColumns());
} }

View File

@ -26,11 +26,12 @@ class ToOneRelation<SelfEntity> extends AbstractRelation<SelfEntity> {
public ToOneRelation(String selfField, String targetSchema, String targetTable, String targetField, String valueField, public ToOneRelation(String selfField, String targetSchema, String targetTable, String targetField, String valueField,
String joinTable, String joinSelfColumn, String joinTargetColumn, String joinTable, String joinSelfColumn, String joinTargetColumn,
String dataSource, Class<SelfEntity> selfEntityClass, Field relationField, String[] selectColumns) { String dataSource, Class<SelfEntity> selfEntityClass, Field relationField,
String extraCondition,String[] selectColumns) {
super(selfField, targetSchema, targetTable, targetField, valueField, super(selfField, targetSchema, targetTable, targetField, valueField,
joinTable, joinSelfColumn, joinTargetColumn, joinTable, joinSelfColumn, joinTargetColumn,
dataSource, selfEntityClass, relationField, dataSource, selfEntityClass, relationField,
null, selectColumns extraCondition, selectColumns
); );
} }