【发布时间】:2020-04-16 23:32:12
【问题描述】:
我正在使用 Spring Data JPA 和 HSQLDB,并将 OpenJPA 作为 JPA 提供程序。
创建了 2 个测试类 (SpringBootTest),它们一个接一个地执行,都使用相同的存储库来保存(使用 CrudRepository 中的 save())实体。
@Entity(name = "theentity")
public class TheEntity {
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Id
private int id;
}
@Bean
public PlatformTransactionManager transactionManager() {
final JpaTransactionManager tm = new JpaTransactionManager();
tm.setEntityManagerFactory(entityManagerFactory());
return tm;
}
问题是,当我运行第二个测试类时,我希望清除持久性,包括identity 列的起始值。
但上述情况并没有发生。
使用hibernate时,添加注解:
@Transactional(propagation = Propagation.NOT_SUPPORTED)
上面的测试类为我完成了全部工作(回滚),不幸的是,注释对 OpenJPA 没有任何作用。
是否有替代方法?
可能需要在persistence.xml 中添加一些属性或向TransactionManager bean 添加一些内容?
【问题讨论】:
标签: hibernate spring-boot jpa openjpa