Java 在控制器中使用多个Spring JpaTransactionManager?
我有一个使用JPA2的SpringMVC应用程序。所有控制器都在类级别用@Transactional注释 是否可以在类级别保留该注释,并在方法级别用另一个@Transactional注释覆盖它?我有一个方法要使其可序列化。您可以通过添加限定符来添加,以区分应该使用哪一个限定符,前提是它们已配置:Java 在控制器中使用多个Spring JpaTransactionManager?,java,spring,transactions,Java,Spring,Transactions,我有一个使用JPA2的SpringMVC应用程序。所有控制器都在类级别用@Transactional注释 是否可以在类级别保留该注释,并在方法级别用另一个@Transactional注释覆盖它?我有一个方法要使其可序列化。您可以通过添加限定符来添加,以区分应该使用哪一个限定符,前提是它们已配置: @Transactional("global") public class SomeService { public void methodThatUsesTheGlobalTxManager
@Transactional("global")
public class SomeService {
public void methodThatUsesTheGlobalTxManager() {
// ...
}
@Transactional("special")
public void methodThatUsesTheSpecialTxManager() {
// ...
}
}
最后一点注意:在尝试实现这一点之后,我发现了以下问题:JPA/Spring不支持自定义隔离级别。哎呀。org.springframework.transaction.InvalidIsolationLevelException:标准JPA不支持自定义隔离级别–为JPA实现使用特殊的JPA选项。也就是说,您仍然可以通过设置
@Transactional
注释的属性来指定独立于供应商的级别。