写来惭愧,做商城的时候遇到了不少的错但是笔记记下来的很少,仅有的 最后留心记下来的 也在我刚才多次地复制粘贴的过程中烟消云散了,但是还是感觉应该记录一下,要不凭我这转眼即逝的记性(⊙﹏⊙)b
商城用的是SSH框架,这个之前也有一些介绍
关于外键:
cannot delete or update a parent row :a foregin key constraint fails('shop'……
在删除商品product的时候由于订单项orderitems这个表将pid(porduct的主键)设置成了外键,删的时候没有步调一致,orderitems就闹了点脾气;这个错让me纠结了半天,有一个解决方案说:set foreign_key_checks=0,我再Dao层设置了一下,报红线、好吧,暴露智商了,后来查到了一些比较专业对口的点击打开链接
先说下什么是外键:
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字
为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。
后面发现这个 在代码里有相关的对策cascade = “delete”,但是可能我忘记写了吧,现在补上:
<many-to-one name="product" lazy="false" cascade = "delete" not-found="ignore" class="cn.itcast.shop.product.vo.Product" column="pid" ></many-to-one>
关于cascade = “delete”还有inverse="true"偶滴这篇小文有写,移步请点;但是告诉你们一个秘密就是我的问题不是这么解决的
下面就无私地告诉你们第二个解决方案:删除外键索引,这个其实一点low,开始我再数据库中删、竟然不让删除,多次无果我果断把数据库删除了(有脚本任性)执行了一次脚本重新导入,删的话MysqL听话多了,特别利索地搞定、问题解决
不知道大家有没有注意到上面代码中的:not-found="ignore",这个是没有No row with the given identifier exists 的问题
如果hibenrate设置的单项关联,即使a中的id2为null值,b中id2中有值,查询都不会出错.但是如果a中的id2字段有值,但是这个值在b中主键值里并没有,就会报上面的错!
如果hibernate是双向关联,那么a中的id2为null值,但是b中如果有值,就会报这个错.这种情况目前的解决办法就是改成单项关联,或者把不对应的数据改对! 点击打开链接
所以:设断点或者怎样找到 脏数据删除,或者就像上面ignore
下一个:no find a getter fo orders in class cn,itcast.shop.order.vo.User 大概是这个意思,看来wuli记忆力还可以撒
<set name="orders" cascade="delete" lazy="false" > <key column="uid"/> <one-to-many class="cn.itcast.shop.order.vo.Order"/> </set>
这个是哪里报错了?上网查 找order类再找user类,无用功用过之后,find到了真正的原因、链接忘了,这个记忆力再好估计也想不起来了吧O(∩_∩)O
没有广告、马上回来:User.java中少些了 orders(⊙﹏⊙)b
private Set<Order> orders = new HashSet<Order>(); public Set<Order> getOrders() { return orders; } public void setOrders(Set<Order> orders) { this.orders = orders; }
还有啥、忘记了,想起来再补吧小记:
原文链接:https://www.f2er.com/xml/294364.html这么多错大概是因为少写了东西造成的,认真、认真再认真
其实我还是挺认真的,毕竟还是有那么一段时间,代码敲出来清一色 运行极其顺利,好怀念;不过那段时间也没有学到什么新东西,对SSH框架、整个商场的逻辑倒是熟悉了,这样想着 偶尔写错个代码也挺好的,喜欢自虐O(∩_∩)O,其实不是、通过这些错误学到了东西、收获了一些知识
开始遇到错误内心是抗拒的,因为手里的项目还有实习的事情也没想赶紧结束这个进度,所以有问题就放着结果、你晓得,自己种下的苦果自己尝,遇到问题解决问题,效率要提高
商城结束要感谢银铃大美女,李硕,王啸、刚鹏还有建敏的慷慨帮助,在下在此谢过了,不胜感激