diff --git a/caf-extension/caf-data-jpa-extension/pom.xml b/caf-extension/caf-data-jpa-extension/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..704e99f5a4d0f3870526d28aa6db8326b4407e39
--- /dev/null
+++ b/caf-extension/caf-data-jpa-extension/pom.xml
@@ -0,0 +1,34 @@
+
+
+ 4.0.0
+
+ io.iec.edp
+ caf-extension
+ 1.9.5-SNAPSHOT
+
+
+ caf-data-jpa-extension
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ io.iec.edp
+ caf-data-jpa
+
+
+ io.iec.edp
+ caf-rpc-api
+
+
+ io.iec.edp
+ caf-rpc-client
+
+
+
\ No newline at end of file
diff --git a/caf-data/caf-data-jpa/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java b/caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java
similarity index 71%
rename from caf-data/caf-data-jpa/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java
rename to caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java
index 573209dda370e328d646ad39f2b107f83bdfd406..acac8c9281e5d9201c111a35a25e39f6418a1524 100644
--- a/caf-data/caf-data-jpa/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java
+++ b/caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/Impl/DBTransactionServiceImpl.java
@@ -16,12 +16,15 @@
package io.iec.edp.caf.commons.transaction.Impl;
+import io.iec.edp.caf.commons.runtime.CafEnvironment;
import io.iec.edp.caf.commons.transaction.JpaTransaction;
import io.iec.edp.caf.commons.transaction.TransactionPropagation;
import io.iec.edp.caf.commons.transaction.entity.EcpDBTransactionWarning;
+import io.iec.edp.caf.commons.transaction.persistence.EcpDBTransactionWarningRpcPersistence;
import io.iec.edp.caf.commons.transaction.repository.EcpDBTransactionWarningRepository;
import io.iec.edp.caf.commons.transaction.service.DBTransactionService;
import io.iec.edp.caf.datasource.CAFDataSourceSelector;
+import io.iec.edp.caf.rpc.client.RpcClassHolder;
import lombok.extern.slf4j.Slf4j;
import java.time.OffsetDateTime;
@@ -37,9 +40,14 @@ public class DBTransactionServiceImpl implements DBTransactionService {
//持久层
private EcpDBTransactionWarningRepository repo;
+ private EcpDBTransactionWarningRpcPersistence dbTransactionWarningRpcPersistence;
+
+ private final RpcClassHolder rpcClassHolder;
+
//构造注入
- public DBTransactionServiceImpl(EcpDBTransactionWarningRepository repo) {
+ public DBTransactionServiceImpl(EcpDBTransactionWarningRepository repo, RpcClassHolder rpcClassHolder) {
this.repo = repo;
+ this.rpcClassHolder = rpcClassHolder;
}
@Override
@@ -54,7 +62,11 @@ public class DBTransactionServiceImpl implements DBTransactionService {
JpaTransaction transaction = JpaTransaction.getTransaction();
try {
transaction.begin(TransactionPropagation.REQUIRES_NEW);
- repo.save(entity);
+ if (CafEnvironment.enablePrimaryDataService()) {
+ getDbTransactionWarningRpcPersistence().save(entity);
+ } else {
+ repo.save(entity);
+ }
transaction.commit();
} catch (Throwable e) {
transaction.rollback();
@@ -66,4 +78,11 @@ public class DBTransactionServiceImpl implements DBTransactionService {
}
}
}
+
+ private EcpDBTransactionWarningRpcPersistence getDbTransactionWarningRpcPersistence(){
+ if(this.dbTransactionWarningRpcPersistence==null){
+ this.dbTransactionWarningRpcPersistence = rpcClassHolder.getRpcClass("sys", EcpDBTransactionWarningRpcPersistence.class);
+ }
+ return this.dbTransactionWarningRpcPersistence;
+ }
}
diff --git a/caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/persistence/EcpDBTransactionWarningRpcPersistence.java b/caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/persistence/EcpDBTransactionWarningRpcPersistence.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2943c781a8346b4093127c9c4c864fc8e6a1850
--- /dev/null
+++ b/caf-extension/caf-data-jpa-extension/src/main/java/io/iec/edp/caf/commons/transaction/persistence/EcpDBTransactionWarningRpcPersistence.java
@@ -0,0 +1,11 @@
+package io.iec.edp.caf.commons.transaction.persistence;
+
+import io.iec.edp.caf.commons.transaction.entity.EcpDBTransactionWarning;
+import io.iec.edp.caf.rpc.api.annotation.GspServiceBundle;
+import io.iec.edp.caf.rpc.api.annotation.RpcParam;
+
+@GspServiceBundle(applicationName = "runtime", serviceUnitName= "sys")
+public interface EcpDBTransactionWarningRpcPersistence {
+
+ void save(@RpcParam(paramName = "entity") EcpDBTransactionWarning entity);
+}
diff --git a/caf-extension/pom.xml b/caf-extension/pom.xml
index efb467ffe036a1bc48e60179798bdfa7ff4dfad8..9e3ec390c52dd7bbd8e5c286d2e3d697edf92e34 100644
--- a/caf-extension/pom.xml
+++ b/caf-extension/pom.xml
@@ -31,6 +31,7 @@
caf-lock-extension
caf-rpc-extension
caf-rest-extension
+ caf-data-jpa-extension
diff --git a/pom.xml b/pom.xml
index 1ce6edc579949c210e634b57b815f039db079b4c..4e395750a620643d3da3933a68bcf27b8a823197 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1178,6 +1178,11 @@
caf-rpc-extension
1.9.4-SNAPSHOT
+
+ io.iec.edp
+ caf-data-jpa-extension
+ 1.9.5-SNAPSHOT
+
io.iec.edp