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