可以使用不同的事务传播策略。它们存在于枚举传播
中。您可能要使用的是
/**
* Execute non-transactionally, suspend the current transaction if one exists.
* Analogous to EJB transaction attribute of the same name.
* <p>Note: Actual transaction suspension will not work on out-of-the-box
* on all transaction managers. This in particular applies to JtaTransactionManager,
* which requires the {@code javax.transaction.TransactionManager} to be
* made available it to it (which is server-specific in standard J2EE).
* @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager
*/
NOT_SUPPORTED(TransactionDefinition.PROPAGATION_NOT_SUPPORTED),
/**
* Execute non-transactionally, throw an exception if a transaction exists.
* Analogous to EJB transaction attribute of the same name.
*/
NEVER(TransactionDefinition.PROPAGATION_NEVER), // maybe not this one
因此,使用这些方法中的任何一个来注释类中的方法。
@Transactional
public class MyTransactionalClass {
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void nonTransactionalMethod() {...}
}
你可以在这里找到所有的传播策略。
问题内容: 我有一个带有注释的类(而不是对其所有方法进行标记)。 虽然我在该类中只有一个方法,但不应将其注释为。 我的问题是我可以在此方法中添加注释以将其标记为“非事务性”吗?或者我应该开始将此类中的每个方法都标记为“事务性”,但不包括此方法(很多工作) 谢谢。 问题答案: 有不同的事务传播策略可以使用。这些存在于枚举中。您可能要使用的是 因此,使用这两种方法在您的类中注释方法。 您可以在此处找到
试图收集和理解@事务性注释的要点并越过了一点。因此,在使用事务性注释时,我们需要记住的主要事情是: 事务注释只能应用于公共方法[根据Spring@Transactional属性对私有方法起作用吗? 事务性注释应该应用于具体的类,而不是接口[根据我应该将@transactional annotation放在接口定义还是实现类的位置? 事务注释应应用于服务级别[根据Spring@Transaction
我试图执行一个集成测试,我的类与@Transactional注释不能自动连接到一个测试类与NoSuchBean定义异常。我把它注释出来,检查了一份装载豆子的列表,我的服务就在那里,只是没有注射。 组织。springframework。豆。工厂BeanCreationException:创建名为“com”的bean时出错。icsynergy。西姆。服务DBIntegrationServiceTest
我正在使用MongoDB的springboot 2.3.0。注释对我不起作用。如果发生异常,则无法回滚事务。 任何帮助都将得到高度赞赏。 我的控制器类: 我的serviceImpl类 我的MongoConfig类
我正在使用Spring(3.1.4版本)和HibernateTemplate(3.6.7.Final)以及Spring数据JPA(1.3.0版本)。我在配置文件中定义了两个事务管理器,一个用于Hibernate,另一个用于Spring数据JPA。两个事务管理器使用不同的数据源。 我想在代码中使用Hibernate的事务管理器和Spring data JPA的事务管理器。(Spring文档链接-10
我有一些服务类,它们扩展了带有@Annotation1注解的BaseService类。在@Annotation1中还有另一个注释-@Annotation2。 我希望能够创建aspect方法,它在用@Annotation2注释的类中的所有方法之前运行,所以在任何扩展BaseService类的服务中都是如此。 当我直接在BaseService中应用@AnNotation2时,我可以运行方面方法,或者当