Java Spring数据JPA一对多关系不保存子表
母实体Java Spring数据JPA一对多关系不保存子表,java,sql-server,spring,hibernate,jpa,Java,Sql Server,Spring,Hibernate,Jpa,母实体 @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=fals
@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”列中
“PARAM”;列不允许空值。插入失败
父表的列
PARAM_REF_ID
缺少值
ParamRef1 pr = new ParamRef1();
pr.setName("TEST PARAM");
pr.setParamRefId(1); // replace 1 with any other valid id as value
嗨,谢谢你的回复。实际上,我在ms sql server中为父表和子表使用标识。因此,我的父表在存储PK字段值方面没有任何问题。但同时,在持久化子表时,父键id不可用。猜猜我的代码有什么遗漏或错误?