春季启动应用程序-@Transactional不起作用

时间:2018-08-09 09:30:44

标签: java spring spring-boot transactional

我的Spring-Boot应用程序出现问题。 在使用@Transactional从函数中获取结果后,我尝试发送通知,但是@Transactional不起作用,回滚不起作用。这是代码。

@Service
public class ParkingServiceImpl implements ParkingService {

   @Override
   public void getParkingFromBOAsyncWrapper() {
         ArrayList<BOUserParking> listUserParkingfromBO = getParkingFromBOTransaction();

        /** Send notification **/
        if(listUserParkingfromBO!=null){
             notificationService.sendNotification(listUserParkingfromBO);
        }
   }


   @Transactional
   @Override
   public ArrayList<BOUserParking> getParkingFromBOTransaction() {
              // .... insert or update on db
   }
}

2 个答案:

答案 0 :(得分:1)

如果在同一类中调用,则Transactional将不起作用。事务性的(以及类似的异步方法)通过在调用类之间创建代理来工作。您必须从另一个类调用它才能获得事务功能。

我会将您的DAO调用移至处理事务性的RespositoryService。

答案 1 :(得分:0)

@Transactional批注放入DAO类方法中,而不是在类中。