我正在将spring启动项目的数据库从mysql切换到postgresql。在大多数情况下,这并不是太痛苦,但我发现我得到了一个例外,我似乎无法解决。
org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "r_i_UNIQUE"
Detail: Key (cola_id, colb_id)=(1234567, 12345) already exists.
mysql中发生这种情况时的行为是执行更新,这也是我在postgresql中需要执行的操作。
代码方面,我通过 cola_id
以及 colb_id
,对象从我的存储库返回,根据需要进行操作,然后使用 repository.saveAndFlush(existingItem);
它在table上 saveAndFlush
我得到了例外。
我的假设是spring将此视为一个新对象,并尝试执行插入而不是更新,但我不理解为什么会出现这种情况,因为它使用mysql时工作正常。
postgresql如何使用saveandflush处理更新,以及如何正确应用更新?
暂无答案!
目前还没有任何答案,快来回答吧!