Java 未找到';强制性';调用@scheduled方法后

Java 未找到';强制性';调用@scheduled方法后,java,spring,transactions,Java,Spring,Transactions,我有两种方法: @Scheduled(cron = "0 * * * * *") @Transactional public void myMethod() { //omited logic without calling repositories or different methods helper.import(new Client()); } 及 一个被安排,一个不被安排。 他们在另一个自动连线组件中调用此方法: @Transactional(propagation =

我有两种方法:

@Scheduled(cron = "0 * * * * *")
@Transactional
public void myMethod() {

  //omited logic without calling repositories or different methods

  helper.import(new Client()); 
}

一个被安排,一个不被安排。 他们在另一个自动连线组件中调用此方法:

 @Transactional(propagation = Propagation.MANDATORY)
 MyObject import(Client client) {

     System.out.println("test");

     clientManager.findClient(client);

     //omited logic
}
 @Transactional(propagation = Propagation.MANDATORY)
 public Client findClient(Client client) {
     //omited logic
}
另一个自动连线组件中的方法
findClient(客户端)

 @Transactional(propagation = Propagation.MANDATORY)
 MyObject import(Client client) {

     System.out.println("test");

     clientManager.findClient(client);

     //omited logic
}
 @Transactional(propagation = Propagation.MANDATORY)
 public Client findClient(Client client) {
     //omited logic
}
预期行为:在
myMethod
中创建事务,然后使用强制传播事务调用
import
,然后使用相同的传播调用
findClient
。因此,所有逻辑都在一个事务中执行。当我调用myMethod()而不使用注释@Scheduled时,一切正常

但当它通过@scheduled注释调用时,它属于异常
org.springframework.transaction.IllegalTransactionStateException:对于标记为传播“必需”的事务,未找到任何现有事务。
在尝试调用
clientManager.findClient(客户端)后,它会下降import
方法中的code>,这意味着(我认为)事务是在
myMethod
中创建的

我试图在
myMethod
上删除@Transactional,并将其设置为
import
方法,因此,我希望在
import
中创建事务,并调用
findClient(client)
,强制传播,但结果是相同的异常


请帮忙。我需要这个预定的行为。

问题是方法
MyObject import(Client-Client)
没有
public
修饰符,这就是为什么即使存在@Transactional注释也没有创建事务的原因(我的错,对不起)