有一张订单表:orders 里面有主键ordersId一张订单详细表:orderDetails 依赖orders表,也就是多对一关系,。
hibernate自动映射出来了分成两个类。一个是OrderDetail 和OrderDetailId 类,OrderDetailId 里面有orders类的对象
现在用hibernate删除的时候。有点问题了。。
我是这样做的,,
Orders orders=(Orders) session.get(Orders.class, 2);
OrderDetailId odi=new OrderDetailId();
odi.setOrders(orders);
OrderDetail od=new OrderDetail();
od.setId(odi);
session.delete(orders);
可是结果是sql错了,外键冲突!无语中。。试着删除session.delete(odi)
提交后能运行到最后。只是没有效果
在线等答案
hibernate自动映射出来了分成两个类。一个是OrderDetail 和OrderDetailId 类,OrderDetailId 里面有orders类的对象
现在用hibernate删除的时候。有点问题了。。
我是这样做的,,
Orders orders=(Orders) session.get(Orders.class, 2);
OrderDetailId odi=new OrderDetailId();
odi.setOrders(orders);
OrderDetail od=new OrderDetail();
od.setId(odi);
session.delete(orders);
可是结果是sql错了,外键冲突!无语中。。试着删除session.delete(odi)
提交后能运行到最后。只是没有效果
在线等答案
还是在OrderDetail那里配置?
可是最后却显示不能读取这个xml文件
Orders orders=(Orders) session.get(Orders.class, 2);
OrderDetailId odi=new OrderDetailId();
odi.setOrders(orders);
OrderDetail od=new OrderDetail();
od.setId(odi); //你这里又“多端”管理关联关系
session.delete(orders); //你这里删除的是“一端”按照以上楼主的代码,应该在“一端”设置级联删除,然后将管理关系交给“多端”。试试下面的配置:在“orderDetails ”端(多端):<many-to-one name="" column="" class=""/>
</set>
在“orders”端(一端):<set name="" inverse="true" cascade="all"> //注意:设置了inverse属性和cascade属性
……
</set>