使用springboot循环选择问题

时间:2020-07-15 18:07:20

标签: spring-boot spring-data-jpa

我有这2个类,首先我得到记录列表,并传递给另一个类(使用@Transaction)中的方法来执行一些代码,如下所示:

public class classA{
   @Autowired
   private classB classB;
   @Autowired
   private repositoryA repositoryA;
   public void myMethod(){
      List<MyObject> myObjList= repositoryA.findAll();
      myObjList.forEach(myObj -> classB.methodWithTransaction(myObj));
   } 
}

public classB{
  @Autowired 
  private repositoryB repositoryB;
  @Autowired 
  private repositoryC repositoryC;

  @Transactional(propagation = Propagation.REQUIRES_NEW)
  public void methodWithTransaction(MyObject obj){
      BigDecimal value = repositoryB.findSomeValueByOjb(obj.getId());
      log.debug("value {}", value);

     repositoryC.saveSomeThing(value);
  }
}

所以我的问题是,当我运行此代码时,如果我的repositoryB.findSomeValueByOjb(obj.getId())中只有一项,则在myObjList中工作正常,但是如果第二次{{1} 1}}被称为他第一次返回相同的值(甚至带有另一个ID值)

只有在运行我的nativeQuery的repositoryB.findSomeValueByOjb(obj.getId())方法中放上findSomeValueByOjb时,我才能做工作

有人知道为什么吗?

tks

0 个答案:

没有答案