非活动事务:javax.persistence.TransactionRequiredException:执行更新/删除查询
我也有同样的问题。我使用的是spring 4.2.2.0版本 我有一个基于Java的配置非活动事务:javax.persistence.TransactionRequiredException:执行更新/删除查询,java,spring,hibernate,spring-data-jpa,Java,Spring,Hibernate,Spring Data Jpa,我也有同样的问题。我使用的是spring 4.2.2.0版本 我有一个基于Java的配置 @Configuration @EnableTransactionManagement @ComponentScan(basePackages={"com.mypackage"}) public class InfrastructureConfig { @Autowired Environment env; @Autowired private DataSource data
@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages={"com.mypackage"})
public class InfrastructureConfig {
@Autowired Environment env;
@Autowired private DataSource dataSource;
@Bean
public JpaTransactionManager transactionManager() {
JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
jpaTransactionManager.setEntityManagerFactory(entityManagerFactory());
return jpaTransactionManager;
}
@Bean
public EntityManagerFactory entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
em.setPersistenceUnitName("javaconfigPU");
em.setPackagesToScan("com.mypackage");
em.setJpaVendorAdapter(jpaVendorAdaper());
em.setJpaPropertyMap(additionalProperties());
em.afterPropertiesSet();
return em.getObject();
}
public JpaVendorAdapter jpaVendorAdaper() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
...
return vendorAdapter;
}
private Map<String, Object> additionalProperties() {
Map<String, Object> properties = new HashMap<String, Object>();
...
return properties;
}
}
@transactional来自spring
我有一个javax.persistene.TransactionRequiredException,当我不使用@transactional时,或者我把它放在没有属性的地方,或者我把它放在有属性的地方
我的代码在另一个应用程序中运行良好,它在3周前运行良好。我也尝试过通过以下示例以编程方式开始事务,但我再次遇到了javax.persistence.TransactionRequiredException:执行更新/删除查询我已经找到了异常的原因。这是因为另一个名为transactionManager的bean重写了在InfrasctuctureConfig类中创建的第一个transactionManager。我也尝试通过以下示例以编程方式开始事务,但我再次得到了javax.persistence.TransactionRequiredException:执行更新/删除查询我已找到异常的原因。这是因为有另一个名为transactionManager的bean重写了在InfrasctuConfig类中创建的第一个transactionManager。
@Service
public class MyService {
@Autowired private MyRepository myRepo;
@Transactional
public void myMethod(MyEntity myEntity){
myRepo.save(myEntity);
}
}