Spring boot 无法从Spring启动计划任务更新实体

Spring boot 无法从Spring启动计划任务更新实体,spring-boot,spring-data-jpa,scheduled-tasks,Spring Boot,Spring Data Jpa,Scheduled Tasks,我正在运行一个spring引导计划任务 @Scheduled(cron="mycronexpression") public void myTask(){ Myentity e=myRepo.getById(1); System.out.println("BeforeValue"+e.getProp()); e.setProp(null); myRepo.save(e); System.out.println("Success

我正在运行一个spring引导计划任务

@Scheduled(cron="mycronexpression")
public void myTask(){
  Myentity e=myRepo.getById(1);
  System.out.println("BeforeValue"+e.getProp());
  e.setProp(null);
  myRepo.save(e);
  System.out.println("Success");
}
这里,两个prinntln语句都正确地打印了值。但是,我收到一个错误,上面写着“计划任务中发生意外错误。无法提交JPA事务。提交事务时出错。”

如果我从控制器(通过邮递员)调用它,同样的代码也可以正常工作。所以这与DB约束无关。另外,如果我不执行e.setProp(null),它也不会失败。 顺便说一下,我调用它的组件被标记为@Transactional


任何建议都会对我有很大帮助。

顺便问一下,你的回购协议是否正确注入?只是问一下,这个道具在表中是否可以为空?@im\u臭名昭著。是的,get工作正常。@Shawrup Yes.prop在表中可为空。正如我所提到的,当我将相同的代码放入一个服务中,并通过邮递员从控制器调用它时,它工作正常