我已将以下代码添加到表中的“插入/更新”记录中
public void createFacebookAccessTokenRecord(int userId, Long facebookId,
String token, String secret) {
Session session = getSessionFactory().getCurrentSession();
UserAuthDetails userAuthDetails = (UserAuthDetails) session.get(
UserAuthDetails.class, new Integer(userId));
if (userAuthDetails != null) {
userAuthDetails.setFacebookId(facebookId);
userAuthDetails.setFacebookUserToken(token);
userAuthDetails.setFacebookUserTokenSec(secret);
session.merge(userAuthDetails);
} else {
userAuthDetails = new UserAuthDetails();
userAuthDetails.setUserId(userId);
userAuthDetails.setFacebookId(facebookId);
userAuthDetails.setFacebookUserToken(token);
userAuthDetails.setFacebookUserTokenSec(secret);
userAuthDetails.setCreatedDt(new Date());
session.save(userAuthDetails);
}
}
如果数据存在,它将更新表,否则插入到新记录中,以我为例,数据已经存在,所以我要更新记录,所以如果循环正常但首先要获取
org.springframework.dao.DataIntegrityViolationException:重复
密钥'umul_facebook_id_UNIQUE'的条目'482186425258498'; SQL [n / a];
约束[null];嵌套异常为
org.hibernate.exception.ConstraintViolationException:重复的条目
密钥'umul_facebook_id_UNIQUE'的'482186425258498'
最佳答案
您正在按userId
查找并且关于umul_facebook_id
违反了唯一约束,因此您还需要检查FacebookId
的唯一性
关于java - org.springframework.dao.DataIntegrityViolationException:重复的条目Spring + Hibernate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25044024/