gpt4 book ai didi

java - Spring 4 @Transactional 不起作用

转载 作者:行者123 更新时间:2023-12-01 09:41:50 25 4
gpt4 key购买 nike

我有一个配置简单的 Spring 4.3 应用程序,我希望服务类中的方法是事务性的,因此我在配置中启用事务管理,然后使用 @Transactional 注释我的服务方法。我从我的控件调用服务方法,但它们的行为不符合预期。当方法的某些部分抛出异常时,永远不会调用回滚

AppInitializer.class:

@EnableTransactionManagement
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebConfig.class};
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{RootConfig.class, SecurityConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}

RootConfig.class:

@Configuration
@EnableJpaRepositories(basePackages"package.repository"})
public class RootConfig {
@Bean
public DataSource dataSource() {
...
return dataSource;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
...
return hibernateJpaVendorAdapter;
}
@Bean
public EntityManagerFactory entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
...
return factory.getObject();
}
@Bean
public JpaTransactionManager transactionManager() {
return new JpaTransactionManager(entityManagerFactory());
}
}

有人知道这里出了什么问题吗

GitHub 链接 https://github.com/VadOs1/TRANSACTIONAL-ISSUE/

谢谢

最佳答案

您可以从 AppInitializer 类中删除 @EnableTransactionManagement 注释并在 RootConfig 类中启用它吗?请告诉我这是否适合您

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages"package.repository"})
public class RootConfig {
@Bean
public DataSource dataSource() {
...
return dataSource;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
...
return hibernateJpaVendorAdapter;
}
@Bean
public EntityManagerFactory entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
...
return factory.getObject();
}
@Bean
public JpaTransactionManager transactionManager() {
return new JpaTransactionManager(entityManagerFactory());
}
}

关于java - Spring 4 @Transactional 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com