我试图用休眠将类实例的列表保存在父对象中。子实例应通过生成的父母ID“ CONTRACTID”映射到父母。
父母:
@Id
@Column(name = "CONTRACTID")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "id_Sequence")
@SequenceGenerator(name = "id_Sequence", sequenceName = "ID_SEQ_CONTRACT")
private Long contract_id;
然后
@OneToMany(targetEntity = CustomerGroup.class, fetch = FetchType.LAZY, cascade = {CascadeType.ALL}, mappedBy = "contractId")
private List<CustomerGroup> customerGroups;
孩子:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACTID", foreignKey=@ForeignKey(name="CONTRACTID_FK"))
private ContractHolder contractId;
也尝试了没有foreignKey=@ForeignKey(name="CONTRACTID_FK")
我在数据库中看到两个字段都存在,在.save上按预期方式生成了父级ID,但是保存父级时CustomerGroup的FK字段保持为空。
我在这里做什么错了?
编辑:
在Database.class中保存代码非常简单 在为父对象设置所有必需的值之后,还将CustomerGroup的列表设置为父对象并正确保存,但不会自动保存FK自动生成的ID
contractRepo.save(contract);
EDIT2:
,如果我尝试在保存之前将父对象设置为childeren的@JoinColumn。喜欢
customerGroup.setContractId(contractHolder);
我得到似乎是无限循环的东西。 该死的