Java 跨3个模式的一个事务?
我已经创建了一个Java 跨3个模式的一个事务?,java,oracle,transactions,entity,entitymanager,Java,Oracle,Transactions,Entity,Entitymanager,我已经创建了一个Java应用程序,可以从我的Oracle数据库中删除数据 应用程序删除3个架构中的行: public class ServiceThree { public void loopThroughDeletesAtProjectLevel(List<EntityToDelete> entityList) { for (int i = 0; i < entityList.size(); i++) {
Java
应用程序,可以从我的Oracle
数据库中删除数据
应用程序删除3个架构中的行:
public class ServiceThree {
public void loopThroughDeletesAtProjectLevel(List<EntityToDelete> entityList) {
for (int i = 0; i < entityList.size(); i++) {
serviceOne.deleteFromSchemaOne(\);
serviceTwo.deleteFromSchemaTwo(entityList.get(i));
deleteFromSchemaThree(entityList.get(i));
}
}
}
如何确保在ONE
事务中删除这三个模式中的所有数据,即如果这三个模式中的任何一个出现错误,那么它将回滚
?我从来没有这样做过,但我模糊地记得应该可以使用。不要在每个过程中启动事务。相反,在调用第一个过程之前启动事务,并在最后一个过程之后提交它。祝你好运。你需要一个重量级的,可能是外部事务管理器。它们是可用的,但设置起来并不简单。@chrylis您能详细说明一下这是什么意思吗?
public void deleteFromSchemaOne(){
repositoryOne.startTransaction();
//logic to carry out deletions
repositoryOne.deleteAllRelevantData(EntityToDelete);
repositoryOne.commitTransaction();
}