我试图更新数据库中的价格。首先,我从API获取新价格,然后删除所有现有价格,然后保存新价格。 “日期”和“符号”的价格受到独特的限制。
@Transactional
public void updateDb(Source source, String symbol){
List<Price> newPrices = getNewPricesFromApi();
dailyPriceRepo.deleteBySourceAndSymbol(source, symbol);
dailyPriceRepo.save(newPrices);
}
我必须在方法上加上@Transactional,因为否则我会收到“无会话错误”。
如果我像上面那样运行代码,则会收到“重复输入密钥”错误。示例:密钥“ UKgfxktfp6jponxxjlva9es09nf”的重复条目“ MMM-1998-01-02-0”
我假设由于@Transactional批注,保存开始时删除过程实际上尚未完成。
我该如何解决?