- 论坛徽章:
- 0
|
使用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 |
|