Java Spring Boot:crudepository方法是@Transactional,我的服务可以';不可能
我有一个Spring Boot应用程序,我面临一个奇怪的问题 我试图使我的一个服务方法具有事务性,但这不起作用 我的服务如下所示: 这意味着SimpleParepository的每个方法都是事务性的,这在我们查看其代码时是正确的:Java Spring Boot:crudepository方法是@Transactional,我的服务可以';不可能,java,spring,transactions,spring-data-jpa,Java,Spring,Transactions,Spring Data Jpa,我有一个Spring Boot应用程序,我面临一个奇怪的问题 我试图使我的一个服务方法具有事务性,但这不起作用 我的服务如下所示: 这意味着SimpleParepository的每个方法都是事务性的,这在我们查看其代码时是正确的: @Transactional public <S extends T> S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity);
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
@Transactional
公共存储(S实体){
if(entityInformation.isNew(实体)){
em.persist(实体);
返回实体;
}否则{
返回em.merge(实体);
}
}
那么,我如何解决这个问题呢?您是否在配置中添加了@EnableTransactionManagement?是的,我尝试过,但没有改变任何事情。我读到我们不必添加这个注释,因为SpringBoot会隐式添加它
public interface DeploiementDAO extends CrudRepository<Deploiement, Integer>
{
List<Deploiement> findByUniteOperationnelle(UniteOperationnelle uo);
}
2017-05-02 19:38:24.297 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Getting transaction for
[org.springframework.data.jpa.repository.support.SimpleJpaRepository.findOne]
2017-05-02 19:38:24.310 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Completing transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.findOne]
2017-05-02 19:38:24.312 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Getting transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.findOne]
2017-05-02 19:38:24.323 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Completing transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.findOne]
2017-05-02 19:38:24.324 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Don't need to create transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.findByUniteOperationnelle]: This method isn't transactional.
2017-05-02 19:38:24.449 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Getting transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save]
2017-05-02 19:38:24.450 TRACE 7760 --- [io-8080-exec-79] o.s.t.i.TransactionInterceptor : Completing transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save]
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}