注册一个私人网站,潍坊网站建设求职简历,做货代的要注册哪种物流网站,wordpress 附件搜索一、解决办法
项目中在更新数据库时出现异常#xff0c;org.springframework.dao.DataIntegrityViolationException#xff0c;当然如果控制台直接报这个异常问题的解决估计也不至于让我写篇博客。 先说这个异常代表的含义吧#xff1a; 这个异常的意思就是在更新#xff…一、解决办法
项目中在更新数据库时出现异常org.springframework.dao.DataIntegrityViolationException当然如果控制台直接报这个异常问题的解决估计也不至于让我写篇博客。 先说这个异常代表的含义吧 这个异常的意思就是在更新update或insert数据库时新的数据违反了完整性例如主键重复我这里的问题是数据库的id字段未设置自增默认值也没设在插入的时候就出现了这个异常问题的解决很简单修改数据库id字段为自增字段完美解决。
出现这个问题的时候应该去查看更新的字段的数据与数据库中对应字段的属性是否有冲突的地方或者是待更新的数据本身的问题。 DataIntegrityViolationException: Error attempting to get column ‘xx’ 项目背景 项目整体采用的是springbootmybatis 方式。有一次做数据查询的时候。console突然报DataIntegrityViolationException: Error attempting to get column ‘xx’…异常。起初没在意。以为是xml中的SQL写错了排查了没问题。百度一下这个报错说是实体类属性与数据库字段类型不一致引起的记录一下防止后续在遇到相似问题。 简单写一下出问题的xml及返回值类型
1 mapper:
select idgetUserList paramTypejava.lang.Integer resultTypecom.rllc.pcloud.po.UserPoselect id,name,date,sign,del from sys_users where id#{userId}
/select2 UserPo:
Data
public class UserPo{private Integer id;private String name;private String password;// 问题就出在这个有参构造方法中public UserPo(String id, String username, String password) {this.id id;this.username username;this.password password;} }问题就出在这个有参的构造方法中。而没有无参构造方法。没有无参构造函数时mybatsi为啥报这个错误呢此时只有一个包含全部属性的构造函数mybatis就会找出这些属性对应的值并实例化一个实体类对象。在找属性对应的值时mybatis会按照实体类全属性的构造函数的入参顺序与sql的查询结果对应如果实体类的属性和sql结果列不能匹配时都会报错。
综上所述问题定位了就很好解决
补上无参构造方法
public class UserPo{private Integer id;private String name;private String password;public UserPo(){} // 问题就出在这个有参构造方法中public UserPo(String id, String username, String password) {this.id id;this.username username;this.password password;}
}OK了.