@Transactional
public void save(String myIds)
{
synchronized (this)
{
List<mydata> data = getDataToSaveOrUpdate(myIds);//Returns the new dataList and updates old data
repository.saveAll(data);
logger.info("request processed");
}
logger.debug("exiting the method");
}
Когда этот метод вызывается в двух отдельных запросах от почтальона, что происходит, синхронизированный блок завершается, но выполняется вставка, и второй запрос начинает чтение из базы данных. Таким образом, второй поток находит одни и те же данные для вставки как в запрос, так и в дать уникальную ошибку нарушения ключа, как мы должны решить эту проблему в данных springboot jpa hibernate