免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1298 | 回复: 0
打印 上一主题 下一主题

StaleStateException 问题解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-12 17:04 |只看该作者 |倒序浏览
使用hibernate进行一对多映射时抛出:StaleStateException:Batch update returned unexpected row count
网上查了老半天也没有找到解决方法,好多文章大概都是一种意思,hibernate对数据库查询时没有得到所期望的结果。
数据库:
CREATE TABLE customers (
  id bigint(20) NOT NULL auto_increment,
  name varchar(10) default NULL,
  PRIMARY KEY  (id)
)
CREATE TABLE orders (
  id bigint(20) NOT NULL auto_increment,
  customers_ID bigint(20) NOT NULL,
  orderDescription varchar(50) default NULL,
  PRIMARY KEY  (id)
)
原本两表之间由外键关联,起初怀疑是外键关联的错就去掉了,以上是去掉以后的表。
两个dao都没啥错。
关键在以下三行。hibernate配置主键是increment
CustomersDAO cdo  = new CustomersDAO();
        
        Customers cs = new Customers();
        Orders os1 = new Orders();
        Orders os2 = new Orders();
        
      
        
        cs.setId((long)0001);
        cs.setName("chenhui");
        os1.setId((long)0001);
        os2.setId((long)0002);
        os1.setOrderDescription("first ");
        os2.setOrderDescription("second");
        os1.setCustomers(cs);
        os2.setCustomers(cs);
        Set set = new HashSet(0);
        set.add(os1);
        set.add(os2);
        cs.setOrders(set);
        cdo.saveCustomers(cs);
注释掉加红的三行就没事了 配置成自增的主键不能再给赋值。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/28187/showart_420528.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP