JavaSpring上的独立事务

JavaSpring上的独立事务,java,spring,transactions,Java,Spring,Transactions,我不太清楚怎么做。但是我正在寻找一种方法来分离函数的事务 我有一个处理每条消息结果的侦听器(messageListener)。在将其发送到下一步(sendToNextProcess)之前,我希望确保第一个事务(updateMessageResults)成功。(是否创建单独的交易?) 如何在JavaSpring上实现这一点?多谢各位 public void messageListener(List<Message> messages) { resultUpdater.updat

我不太清楚怎么做。但是我正在寻找一种方法来分离函数的事务

我有一个处理每条消息结果的侦听器(
messageListener
)。在将其发送到下一步(
sendToNextProcess
)之前,我希望确保第一个事务(
updateMessageResults
)成功。(是否创建单独的交易?)

如何在JavaSpring上实现这一点?多谢各位

public void messageListener(List<Message> messages) {
    resultUpdater.updateMessagesResults(messages);
    sendToNextProcess(messages);
}
public void messageListener(列出消息){
resultUpdater.updateMessagesResults(消息);
sendToNextProcess(消息);
}
注意:侦听器和resultUpdater都有
@Transactional
注释


谢谢大家!

添加
需要在
sendToNextProcess
updateMessageResults

不要直接调用
sendToNextProcess
,因为它不起作用。您应该注入当前服务,然后像这样调用它

@Service
public CurrentService {
    @Autowire
    CurrentService CurrentService;  

    @Transactional
    public void messageListener(List<Message> messages) {
        resultUpdater.updateMessagesResults(messages);
        currentService.sendToNextProcess(messages);
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void sendToNextProcess(List<Message> messages) {

    }
}
@服务
公共服务{
@自动连线
当前服务当前服务;
@交易的
public void messageListener(列出消息){
resultUpdater.updateMessagesResults(消息);
currentService.sendToNextProcess(消息);
}
@事务性(传播=传播。需要\u新建)
public void sendToNextProcess(列出消息){
}
}
为什么您应该从注入服务调用它,因为
@transactional

尝试从类范围外包装它,然后它尝试使用
this
调用它,它将不会像您期望的那样工作

更新消息结果
标记为
需要新的
作为传播级别。这将为
updateMessageResults
启动一个新事务。