Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.springframework.dao.DataIntegrityViolationException:重复条目Spring+Hibernate_Java_Spring_Hibernate - Fatal编程技术网

Java org.springframework.dao.DataIntegrityViolationException:重复条目Spring+Hibernate

Java org.springframework.dao.DataIntegrityViolationException:重复条目Spring+Hibernate,java,spring,hibernate,Java,Spring,Hibernate,我已经添加了下面的代码来将记录插入/更新到表中 public void createFacebookAccessTokenRecord(int userId, Long facebookId, String token, String secret) { Session session = getSessionFactory().getCurrentSession(); UserAuthDetails userAuthDetails = (

我已经添加了下面的代码来将记录插入/更新到表中

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:重复 输入'482186425258498'用于键'umul_facebook_id_UNIQUE';SQL[n/a]; 约束[null];嵌套异常是 org.hibernate.exception.ConstraintViolationException:重复条目 “482186425258498”用于键“umul\u facebook\u id\u UNIQUE”


您正在按用户id进行查找,有关umul_facebook_id的唯一性约束被违反,因此您也需要检查FacebookId的唯一性

表中只有一条记录,FacebookId为空,这就是我更新它的原因。只需使用此代码在数据库中搜索,从subodhc_ccc中选择*。用户身份验证详细信息,其中facebook_id=48218645258498;不存在记录我的意思是尝试使用相同的代码,它可能被缓存或在sessionOk中的某个位置,但是session.merge应该可以工作,如果存在,则更新,否则插入..相同的我尝试过session.SaveOrUpdate我的意思是在合并或更新之前,尝试通过它读取实例,或者尝试启用sql日志,并在失败之前查看它是否正在查询,要排除的查询是什么