diff --git a/flyfish-data/flyfish-data-domain/pom.xml b/flyfish-data/flyfish-data-domain/pom.xml
index 9b5a88b..1f71e46 100644
--- a/flyfish-data/flyfish-data-domain/pom.xml
+++ b/flyfish-data/flyfish-data-domain/pom.xml
@@ -24,7 +24,7 @@
com.flyfish.framework
- flyfish-data-r2dbc
+ flyfish-data-relational
${revision}
true
diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java
index 377584a..f1bedd7 100644
--- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java
+++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java
@@ -3,7 +3,7 @@ package com.flyfish.framework.domain.po;
import com.flyfish.framework.domain.base.AuditDomain;
import com.flyfish.framework.enums.NamedEnum;
import com.flyfish.framework.enums.RoleType;
-import com.flyfish.framework.r2dbc.mapping.Association;
+import com.flyfish.framework.relational.mapping.Association;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java
index 33bd55a..ac444da 100644
--- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java
+++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java
@@ -6,7 +6,7 @@ import com.flyfish.framework.domain.base.AuditDomain;
import com.flyfish.framework.domain.base.IUser;
import com.flyfish.framework.enums.UserStatus;
import com.flyfish.framework.enums.UserType;
-import com.flyfish.framework.r2dbc.mapping.Association;
+import com.flyfish.framework.relational.mapping.Association;
import com.flyfish.framework.validation.spi.ConditionalGroup;
import lombok.*;
import org.springframework.data.annotation.Transient;
diff --git a/flyfish-data/flyfish-data-r2dbc/pom.xml b/flyfish-data/flyfish-data-r2dbc/pom.xml
index fe1f8b7..b78bdeb 100644
--- a/flyfish-data/flyfish-data-r2dbc/pom.xml
+++ b/flyfish-data/flyfish-data-r2dbc/pom.xml
@@ -21,6 +21,11 @@
org.springframework.boot
spring-boot-starter-data-r2dbc
+
+ com.flyfish.framework
+ flyfish-data-relational
+ ${revision}
+
io.asyncer
r2dbc-mysql
diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java
index 5302e69..e0d1dc8 100644
--- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java
+++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java
@@ -45,9 +45,8 @@ public class R2dbcDataConfig {
}
@Bean
- public EntityCallback referenceR2dbcCallback(R2dbcEntityOperations entityOperations, R2dbcMetadataManager metadataManager) {
- return new ReferenceR2dbcCallback(metadataManager, entityOperations.getDatabaseClient(), entityOperations.getDataAccessStrategy()
- .getStatementMapper());
+ public EntityCallback referenceR2dbcCallback(R2dbcMetadataManager metadataManager) {
+ return new ReferenceR2dbcCallback(metadataManager);
}
@Bean
diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/callback/ReferenceR2dbcCallback.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/callback/ReferenceR2dbcCallback.java
index 50ee424..cff0891 100644
--- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/callback/ReferenceR2dbcCallback.java
+++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/callback/ReferenceR2dbcCallback.java
@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.mapping.PersistentPropertyAccessor;
+import org.springframework.data.r2dbc.core.R2dbcEntityOperations;
import org.springframework.data.r2dbc.core.StatementMapper;
import org.springframework.data.r2dbc.mapping.event.AfterConvertCallback;
import org.springframework.data.relational.core.mapping.RelationalPersistentProperty;
@@ -43,8 +44,7 @@ import java.util.stream.Collectors;
public class ReferenceR2dbcCallback implements AfterConvertCallback {
private final R2dbcMetadataManager r2dbcMetadataManager;
- private final DatabaseClient databaseClient;
- private final StatementMapper statementMapper;
+ private Lazy operations;
private Lazy