Wie Einfügen von Objekt in einer einzigen Transaktion mit Spring-Boot-Anwendung. Wenn jemand unter dem Objekt diese Transaktion nicht einfügt, wird er zurückgesetzt.Wie JPA-Transaktion mit Spring Boot-Anwendung zu implementieren?
clientInBoundFilesService.saveClientInBoundFiles(clientInBoundFiles);
icdCodeService.saveICDCode(icdCode);
cptCodeService.saveCPTCode(cptCode);
insuranceService.saveInsurance(insurance);
referingProviderService.saveReferingProvider(referingProvider);
Hier ist meine 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>
Hier mein JpaRepositoryFactory.java ist.
@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;
}
}
Hier ist meine Service-Klasse
@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);
}
}