【发布时间】:2014-04-24 11:03:18
【问题描述】:
父实体
@OneToMany(fetch = FetchType.EAGER, mappedBy = "paramRef", cascade=CascadeType.ALL)
public Set getParamList() { return this.paramList; }
子实体
@ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "param_Ref_Id", nullable = false, insertable=false, updatable=false)
public ParamRef1 getParamRef() { return this.paramRef; }
要持久化的代码
ParamRef1 pr = new ParamRef1();
pr.setName("TEST PARAM");
Param1 p1 = new Param1() p1.setParamValue("ONE") p1.setParamRef(pr);
Param1 p2 = new Param1() p2.setParamValue("TWO") p2.setParamRef(pr);
Set paramList = new HashSet() paramList.add(p1) paramList.add(p2)
pr.setParamList(paramList)
pr = paramRefDao1.save(pr)
如果步骤正确,请告诉我。我收到以下异常。并且无法理解为什么父 ID 在子表中不可用
引起:org.hibernate.exception.ConstraintViolationException: 无法将值 NULL 插入列“PARAM_REF_ID”,表 '参数';列不允许空值。插入失败。
【问题讨论】:
标签: java sql-server spring hibernate jpa