像这样处理:Saler sa = new Saler(); session.save(sa);Goods goods = new Goods(sa); session.save(goods);
TUserBySalerId 的 saler_id 数据库里不能为空。
不跟你说了嘛,先持久化saler_id对应的对象,再持久化Goods
你配的是双向一对多关系么,双向的话是不会有这个问题,控制权在goods 表这边
Saler sa = new Saler(); session.save(sa);Goods goods = new Goods(sa); session.save(goods); 修改成: //新的卖家对象的ID没有值(估计你是用的自增ID) Saler sa = new Saler(); //获取其自动的ID java.io.Serializable salerId = session.save(sa); //将该卖家对象重新从数据库里提取出来,这时对象的ID才有具体值 sa = session.getObjectById(salerId); //这时卖家对象的ID就不为空了 Goods goods = new Goods(sa); session.save(goods);
如果不是这样的话,应该把saler_id 设置成允许为空。如果是,那外面必然先取得saler_id 的值才插入数据
像这样处理:Saler sa = new Saler();
session.save(sa);Goods goods = new Goods(sa);
session.save(goods);
不跟你说了嘛,先持久化saler_id对应的对象,再持久化Goods
session.save(sa);Goods goods = new Goods(sa);
session.save(goods);
修改成:
//新的卖家对象的ID没有值(估计你是用的自增ID)
Saler sa = new Saler();
//获取其自动的ID
java.io.Serializable salerId = session.save(sa);
//将该卖家对象重新从数据库里提取出来,这时对象的ID才有具体值
sa = session.getObjectById(salerId);
//这时卖家对象的ID就不为空了
Goods goods = new Goods(sa);
session.save(goods);
session.getObjectById(salerId);