异步DB保存抛出DataIntegrityViolationException

时间:2019-06-13 09:13:44

标签: java database hibernate spring-boot asynchronous

我有一个应用程序异步保存到数据库,现在的问题是,如果有效负载中有重复项(相同的ID),或者应用程序收到多个实例的有效负载(Id相同),则Hibernate会为它们两个创建插入后来收到的那个引发了DataIntegrityViolationException,因为该ID已经存在。 @retryable第二次重试,Hibernate创建更新语句,第二有效载荷更新现有记录。 如何避免异常。

我也尝试过@Transactional@Lock(LockModeType.PESSIMISTIC_WRITE)。但这没用。我正在使用Spring JPA和@Async

[{"id":1, "name":"abc"}, {"id":1, "name":"efg"}]

0 个答案:

没有答案