Java Spring与quartz和jpa交易

Java Spring与quartz和jpa交易,java,spring,spring-data-jpa,quartz-scheduler,spring-transactions,Java,Spring,Spring Data Jpa,Quartz Scheduler,Spring Transactions,阅读它时说,JobStoreCMT支持JTA事务 是否可以将quartz配置为与JPA事务管理器一起运行?如果不是,我假设Atomikos或Bitronix应该与spring一起使用以启用JTA 基本上我希望quartz调度器在抛出异常时回滚,例如 @Transactional public void scheduleJob(QuartzJobData quartzJobData) throws Exception { SimpleTrigger trigger = (SimpleTr

阅读它时说,JobStoreCMT支持JTA事务

是否可以将quartz配置为与JPA事务管理器一起运行?如果不是,我假设Atomikos或Bitronix应该与spring一起使用以启用JTA

基本上我希望quartz调度器在抛出异常时回滚,例如

@Transactional
public void scheduleJob(QuartzJobData quartzJobData) throws Exception {

    SimpleTrigger trigger = (SimpleTrigger) newTrigger()
            .withIdentity(name, group)
            ...
            .build();

    scheduler.scheduleJob(trigger);
    throw new Exception("my exception");

    // after exception I'd expect quartz to roll back
}

注意在quartz作业中运行事务本身没有任何问题。我只对quartz scheduler没有如上面的代码示例所示回滚有问题。

可能重复的我认为您可能需要显式设置rollboor=Throwable.classDenis Ismailovski我会有,尽管quartz不是由spring管理的,并且传播级别在那里并不重要?在将数据保存到DB之前,quartz中可能有10个方法?我快速查看了quartz源代码,我认为它在StdJDBCDelegate.selectTriggersingGroup中创建了一个准备好的语句,并在JobStoreSupport.getConnection()中获取连接