Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; neste

今天在写多个删除功能的时候出现了这么一个错误:意思是删除操作的时候,没有找到对应的外键。


Cannot delete or update a parent row: a foreign key constraint fails (`ssh03`.`role_privilege`, CONSTRAINT `FK45FBD628F05C38CB` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`))
Cannot delete or update a parent row: a foreign key constraint fails (`ssh03`.`role_privilege`, CONSTRAINT `FK45FBD628F05C38CB` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`))
Could not execute JDBC batch update
Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

在网上找了很久,都没有找到对应的错误。。我的删除操作是先查找Role对象,再通过删除它

后来debug起来又是匪夷所思的:后台能够得到外界传递过来的id

这里写图片描述

在查询对象的时候,就死活查不了外键的数据【让我搞了很久很久】。。

这里写图片描述

最后发现id上多了一个空格???????至于为什么多了一个空格,,我现在还不知道。。。于是把空格去掉,就解决这个bug了。。。


    /*批量删除*/
    public String deleteSelect() {
        for (String s : selectedRow) {

            roleServiceImpl.delete(s.trim());
        }
        return "list";
    }

….如果知道为什么会多出一个空格的,请在评论下告诉我….

原文地址:https://www.cnblogs.com/zhong-fucheng/p/7202918.html