【发布时间】:2016-11-04 07:40:54
【问题描述】:
如何使用 Spring Boot 应用程序在单个事务中插入以下对象。如果对象下方的任何人未能插入该事务回滚。
clientInBoundFilesService.saveClientInBoundFiles(clientInBoundFiles);
icdCodeService.saveICDCode(icdCode);
cptCodeService.saveCPTCode(cptCode);
insuranceService.saveInsurance(insurance);
referingProviderService.saveReferingProvider(referingProvider);
这是我的 pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>org.sam.application.Application</start-class>
<java.version>1.6</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
这是我的 JpaRepositoryFactory.java 。
@Component
public class JpaRepositoryFactory {
@PersistenceContext
private EntityManager entityManager;
public <T> T getRepository(Class clazz) {
notNull(clazz);
notNull(entityManager);
T crudRepository = (T) new SimpleJpaRepository(clazz, entityManager);
return crudRepository;
}
}
这是我的服务类
@Service
public class ClaimDetailService {
private JpaRepositoryFactory jpaRepositoryFactory;
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Autowired
public ClaimDetailService(JpaRepositoryFactory jpaRepositoryFactory) {
this.jpaRepositoryFactory = jpaRepositoryFactory;
}
@Autowired
public void setDataSource(DataSource dataSource) {
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
@Transactional
public void saveClaimDetail(ClaimDetail claimDetail) {
JpaRepository<ClaimDetail, Long> mailAuditLogLongJpaRepository = jpaRepositoryFactory.getRepository(ClaimDetail.class);
mailAuditLogLongJpaRepository.save(claimDetail);
}
}
【问题讨论】:
标签: spring jpa spring-boot transactions