解决方案 »

  1.   

    你先看看保存之前那个product是否有值,打印下product的id什么的
      

  2.   

      ProcuductRe pr =new ProcuductRe();
                     Product product = productService.findProductById(productid).get(0);
                     pr.setTUser(user);
                     pr.setTProduct(product);
                     pr.setReDate(new Date());
                     pr.setReLevel(Integer.parseInt(reLevel));
                     pr.setReContent(reContent);
                     productReService.save(pr);
    pr 没有id值
      

  3.   

    貌似它说的是产品id而不是产品评价id
      

  4.   

    貌似它说的是产品id而不是产品评价id
    是的,我说的是产品的id是否有值,你错误提示就是这个,所以你先检查一下保存产品评价的时候,产品的id值是否设置成功了
      

  5.   

    貌似它说的是产品id而不是产品评价id
    是的,我说的是产品的id是否有值,你错误提示就是这个,所以你先检查一下保存产品评价的时候,产品的id值是否设置成功了确实有值啊 ,我debug和打印都能出来啊
      

  6.   

    那就不知道了- -,T_PRODUCT_REMARK在数据库的字段有哪些?
      

  7.   

    Hibernate: insert into TCYG.T_PRODUCT_REMARK (REMARK_DATE, REMARK_LEVEL, REMARK_CONTENT, ID) values (?, ?, ?, ?)  改成product_id 看看如何?
      

  8.   

    pr.setTProduct(product);中product.getProductid()为null?
      

  9.   

    Hibernate: insert into TCYG.T_PRODUCT_REMARK (REMARK_DATE, REMARK_LEVEL, REMARK_CONTENT, ID) values (?, ?, ?, ?)
    这个日志应该要打印
    Hibernate: insert into TCYG.T_PRODUCT_REMARK (REMARK_DATE, REMARK_LEVEL, REMARK_CONTENT, ID,PRODUCT_ID) values (?, ?, ?, ?,?)吧
    配置文件要insert="false" ?
      

  10.   

    配置中是有了关联,但是看你打印出来的sql语句中没有PRODUCT_ID字段,所以问题是不是数据库中没有在这个字段上建立外键关系啊
      

  11.   

    Product product = productService.findProductById(productid).get(0);
    这里是null吧
      

  12.   

    反转过来有many to one 的配置,肯定有主外键关系啊。
      

  13.   

    额,我是说的数据库中的表是否建立了外键关系(莫非你的库中的表是通过程序中配置的XML生成的)
      

  14.   


    我是用设计好的表反转的DTO.