出现这个错误原因有三个:
(1)这个异常是由于主键设置为自增长,而在我们插入记录的时候设置了ID的值导致的。
(2)使用的是hibernate的saveOrUpdate方法保存实例
saveOrUpdate要求:只有ID为null才执行save,其他情况下执行update
在保存实例的时候是新增,但你的ID不为null,所有就执行update *** 作,可是数据库没有主键对应的值,所有出现了异常。
(3)在Hibernate映射一对多,多对一,多对多的时候新增常常会出现异常
具体请见链接:>
就是 连接数据库 的
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来 *** 纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
楼主如果愿意的话可否把你的测试代码发送到我邮箱jammiwang@qqcom,我帮你调试好了再回发给你
ps:代码已经给你调试好了,问题主要在于:updatejsp页面中的form标签中应该新增一个参数
<input type="hidden" name="proid" value="${proid }" />这个参数是对象的id,否则点击保存的时候对象的id值就是0,执行sql的时候就会报出无法更新数据库中存在的数据的异常
代码已经重新整理好了,请下载参阅。
以上就是关于hibernate插入一张表中数据时报错,更新和删除不包错但数据库中的数据没有改变,其他表的 *** 作都没有错。全部的内容,包括:hibernate插入一张表中数据时报错,更新和删除不包错但数据库中的数据没有改变,其他表的 *** 作都没有错。、Hibernate: 更新时间、数字类型数据为空值到数据库、Hibernate更新HSQLDB数据库的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)