我使用:
public interface TestModelRepository extends JpaRepository<TestModel, Long> {
}
public interface TestModelRepository2 extends JpaRepository<TestModel2, Long> {
}
@Service
static class Svc {
@Autowired
private TestModelRepository modelRepository;
@Autowired
private TestModelRepository2 modelRepository2;
@Transactional
public void insertWithException() {
assertThat(TransactionAspectSupport.currentTransactionStatus()).isNotNull();
modelRepository.save(new TestModel("any"));
modelRepository2.save(new TestModel2("unique"));
modelRepository2.save(new TestModel2("unique"));
}
}
@Bean
PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory);
return transactionManager;
}
@Bean
JpaVendorAdapter vendorAdapter() {
HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
adapter.setDatabase(Database.MYSQL);
adapter.setDatabasePlatform(MySQL5Dialect.class.getName());
return adapter;
}
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(dataSource);
entityManagerFactory.setJpaVendorAdapter(vendorAdapter);
entityManagerFactory.setPackagesToScan(packagesToScan);
entityManagerFactory.setJpaProperties(properties);
您可以在连接上或在db配置中自动提交。我还注意到你在使用MySQL。确保您的架构和表是InnoDB,而不是MyISAM
我有一个代码片段,看起来像这样 配置类
我使用的是Spring Boot应用程序,在上面我试图实现事务性管理。但是Spring不会回滚用相同方法保存的数据。 代码库:https://github.com/vinothr/spring-boot-transactional-example
同事们,你能帮我做注释吗?我的目标是将数据库事务管理传递给Spring,并在当前情况下将数据保存在数据库中。 我在DAO类中有两种方法: 服务方式: 我有一个测试,调用这两种方法。我可以使用方法从表中读取数据。但是调用方法后没有保存数据。这是我的问题。当我取消注释中与事务相关的代码时,一切正常。正如我所理解的,在这种情况下,Spring事务管理器不起作用。 如何使用spring@Transacti
我在同一个测试类中有两个JUnit测试,每个都标记为@Transactional,第一个创建用户,第二个创建用户,并检查我们是否可以获得这些用户。 问题是,当第二个测试运行时,第一个测试创建的用户仍然在数据库中。 谢谢你抽出时间。
我试图在一个特定文件夹中保存多个图像第一个图像保存正确,但下一个图像只是替换第一个图像。如何保存多个图像?如何动态命名并使用相同的名称保存图像,但使用不同的扩展名,如image、image1、image2。。。下面是我的代码
我试图保存多个记录通过 但是从上面来看,只创建了第一个数组。我哪里做错了?感谢您的帮助。