有個需求是如果unique key不存在則插入,存在則更新。
簡單的方式先select一下再insert 或者update,但是嫌太麻煩而且慢,所以采用Hibernate中session.saveOrUpdate()方法,結果報錯,提示說duplicated key,也不知道為什么。
因為時間比較緊急就先找了個backup方案,使用了SQL里的 on duplicated key update原語,官方並不推薦使用,但是沒辦法先解決問題唄。使用session.createSQLQuery就可以直接寫SQL語句去使用了。
后續我會跟進一下saveOrUpdate會失敗的原因。