【问题标题】:One to many cascade All is not setting parent id while child entry insertion插入子条目时,一对多级联全部未设置父ID
【发布时间】:2014-08-07 20:45:15
【问题描述】:

我正在使用 Hibernate 3 注释。 我有一个具有一对多关系的表“产品”和子表“产品规格”。 当我做 hibernateTemplate.save(product) 它给出错误

无法插入:[com.xx.ProductSpec]; SQL [插入 Products_spec “PRODUCT_ID”列不能为空

@Entity
@Table(name = "product")
public class Product implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id @GeneratedValue
    @Column(name = "PRODUCT_ID")
    private Integer productId;

    @Column(name = "PRODUCT_NAME")
    private String productName;

    @OneToMany(mappedBy = "product",fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private List<ProductSpec> specs = new ArrayList<ProductSpec>();

//getter and setter
}


@Entity
@Table(name = "Products_spec")
public class ProductSpec implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id @GeneratedValue
    @Column(name = "spec_id")
    private Integer specId;

    @ManyToOne
    @JoinColumn(name = "PRODUCT_ID")
    private Product product;

    //getter and setter
}


hibernateUtil.getTemplate().save(product);

【问题讨论】:

    标签: hibernate-mapping hibernate3


    【解决方案1】:

    问题是我将 product_id 列(子项中的连接列)设置为非空。 使其可以为空后,它就起作用了。

    我不知道 hibernate 为 cascade all 执行的查询。

    首先休眠添加连接列值为空的子条目,然后更新条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 2020-01-21
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多