Set set=new HashSet();
for(Iterator i=user.getOrders().iterator();i.hasNext();){
Orders order=(Orders)i.next();
set.add(order);
//user.getOrders().remove(order);
//session.delete(order);
}
for(Iterator i=set.iterator();i.hasNext();){
Orders ord=(Orders)i.next();
user.getOrders().remove(ord);
你删除的是一个新的set中对order的引用。。
你既然要删掉user‘s order为什么又要保存下来呢?直接删不可以吗?
for(Iterator i=user.getOrders().iterator();i.hasNext();){
Orders order=(Orders)i.next();
set.add(order);
//user.getOrders().remove(order);
//session.delete(order);
}
for(Iterator i=set.iterator();i.hasNext();){
Orders ord=(Orders)i.next();
user.getOrders().remove(ord);
你删除的是一个新的set中对order的引用。。
你既然要删掉user‘s order为什么又要保存下来呢?直接删不可以吗?
解决方案 »
- 使用javax.net.ServerSocketFactory创建Socket出现 address in used异常
- hibernate CascadeType的疑惑
- hibernate annatatoin 问题
- java file中怎样得到文件的修改、创建、最后一次访问的时间?
- a.jsp中的某部分加载一个另外b.jsp 页面,js 怎么处理?
- hibernate中对 多对多的两张表的查询
- java导入大数量文本文件进数据库的问题
- 使用UTF-8时,下载长文件名时无法正确显示原文件名.请问如何解决?
- 如何从oracle里面取出参的值
- 如何动态切分窗口?
- 做网站流量统计的问题
- 弱弱的问个hibernate的问题
因为load(BeanName.class,ID)该方法只返回一条记录;
来面的FOR 有必要这么写吗
Session session=HibernateSessionFactory.getSession();
Transaction trs=session.beginTransaction();
UserInfor user=(UserInfor)session.load(UserInfor.class, "9509");
Set set=new HashSet(user.getOrders());
for(Iterator i=set.iterator();i.hasNext();){
Orders ord=(Orders)i.next();
user.getOrders().remove(ord);
}
if(user.getOrders().isEmpty())
System.out.println("is empty!");
trs.commit();
HibernateSessionFactory.closeSession();
总没用引用了吧,而且打印出is empty!这证明user中的orders都被移除了啊,但还是没有把ORDERS表中相应的记录删除掉,哪位大哥知道是什么原因啊