我有一个应用程序异步保存到数据库,现在的问题是,如果有效负载中有重复项(相同的ID),或者应用程序收到多个实例的有效负载(Id相同),则Hibernate会为它们两个创建插入后来收到的那个引发了DataIntegrityViolationException,因为该ID已经存在。 @retryable
第二次重试,Hibernate创建更新语句,第二有效载荷更新现有记录。
如何避免异常。
我也尝试过@Transactional
和@Lock(LockModeType.PESSIMISTIC_WRITE)
。但这没用。我正在使用Spring JPA和@Async
[{"id":1, "name":"abc"}, {"id":1, "name":"efg"}]