你goods配置文件里面有设置not-null的吧,把这个设置去掉就可以了

解决方案 »

  1.   

    但数据库里有 saler_id 这样一个字段 必填,怎么处理?
      

  2.   

    那你把你的临时对象先持久化再持久化你的goods
      

  3.   

    想问你的商品是怎么定义的 是不是卖家发布一个商品的时候 才加入数据库的?
    如果不是这样的话,应该把saler_id 设置成允许为空。如果是,那外面必然先取得saler_id 的值才插入数据
      

  4.   


    像这样处理:Saler sa = new Saler();
    session.save(sa);Goods goods = new Goods(sa);
    session.save(goods);
      

  5.   

    TUserBySalerId  的  saler_id  数据库里不能为空。
      

  6.   


    不跟你说了嘛,先持久化saler_id对应的对象,再持久化Goods
      

  7.   

    你配的是双向一对多关系么,双向的话是不会有这个问题,控制权在goods 表这边
      

  8.   

    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);
      

  9.   

    这个方法,是我自定义的名称,就是根据ID从数据中提取卖家对象
    session.getObjectById(salerId);