【发布时间】:2017-04-05 14:34:12
【问题描述】:
有问题的项目使用 Spring 4、Java 7,并持续到 Oracle 和 PostgreSQL。
我正在为将数据保存到两个数据库的服务编写集成测试。对于集成测试,我希望两个事务都自动回滚。我知道如果不使用 Java 8,我就不能使用“重复”注释,因为我会得到一个编译错误。如果我将一个注释放在类级别,另一个注释放在方法级别,我可以编译得很好。但是,似乎列出的更高注释不会回滚。澄清一下,如果我在类或方法级别将 @Transactional 注释(Oracle 或 PostgreSQL)声明为独立注释,则回滚可以完美运行。但是如果我在类级别实现一个注解,而在方法级别实现另一个注解,则回滚将仅适用于方法级别,而不适用于类级别。
我怀疑多个 @Transactional 注释可以正常工作,只要该过程一次只尝试回滚一个。例如:一种方法使用 Oracle 事务,另一种方法使用 PostgreSQL 事务。
有什么想法吗?
【问题讨论】:
标签: spring integration-testing java-7 spring-transactions