我们使用 Spring 事务使用注解的@Transactional 属性而不是 XML 替代品。是否可以将某些服务方法指定为 XML 版本中声明的“只读”?
据我所知,在 XML 版本中,您可以将方法和只读配置指定为:
<tx:attributes>
<!-- all methods starting with 'get' are read-only -->
<tx:method name="get*" read-only="true"/>
<tx:method name="find*" read-only="true"/>
<!-- other methods use the default transaction settings (see below) -->
<tx:method name="*"/>
</tx:attributes>
但是我想在注释服务中使用这个配置。这可能吗?
最佳答案
我不认为您可以将该 xml 转换为 @Transactional
。该注释将放置在方法和/或类上,用法不同。
你需要有不同的想法:例如,如果你有一个包含许多 get*
方法的类,那么你可以在类级别放置一个 @Transactional(readOnly=true)
然后对于您不想成为 readOnly
的每个方法,您放置另一个 @Transactional(readOnly=false)
。此外,您可以将 @Transactional
放在接口(interface)上,如果您可以创建许多类通用的接口(interface),则可以在一个地方定义事务行为:在接口(interface)中。
关于java - Spring注释事务中的全局配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25421540/