Spring JPA-Hibernate报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an er解决方案...

原文链接: http://www.cnblogs.com/zhaolide/p/9759927.html

今天在使用基于Hibernate的Spring Data JPA来保存一个实体类,当提交表单时,报如下Exception:

控制台输出的sql语句为:

我的数据库表结构为:
这里写图片描述

阅读Exception的大意,我知道是sql插入时出错了,这种情况一般是sql语句写错了。可是,我这里是使用的hibernate直接保存对象,sql语句不是我写的,怎么会出错呢?排除这个原因。然后,我又注意到了控制台的sql语句:

我发现,这里的插入属性的顺序和我数据库表的属性顺序不同,推测,是不是这个原因导致出错的呢?留学英国费用于是着手验证:我将数据库表删除,然后重新创建了以category, desc, imgs, plantname, price, id这个顺序的表:
这里写图片描述
运行,发现仍然出错,故排除这个原因。
接着,我开始在百度上面搜索该异常,其中一篇博客提到了错误的原因。

其中一篇博客中写道,这个可能是属性与mysql数据库关键字重合。我马上查看我的属性,发现desc属性很有可能跟mysql关键字重合了,于是马上将实体类和数据库中的desc属性修改为descrption属性。运行,异常消失,保存成功!

这个异常卡了我一下午的时间,感觉Hibernate的异常提示有很大的误导作用,除此之外,由于自己的疏忽,使用了数据库的关键字才导致了该异常的产生。
记录下这个异常,防止以后再卡在类似的问题上,同时,也希望能对其他人起一些参照作用,让大家少浪费些时间。

转载于:https://www.cnblogs.com/zhaolide/p/9759927.html

猜你喜欢

转载自blog.csdn.net/weixin_30699235/article/details/94816576
今日推荐