我的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
}
}
答案 0 :(得分:1)
如果在同一类中调用,则Transactional将不起作用。事务性的(以及类似的异步方法)通过在调用类之间创建代理来工作。您必须从另一个类调用它才能获得事务功能。
我会将您的DAO调用移至处理事务性的RespositoryService。
答案 1 :(得分:0)
将@Transactional
批注放入DAO类方法中,而不是在类中。