Я пытаюсь сохранить список экземпляров класса внутри родительского объекта с помощью hibernate. Дочерний экземпляр должен отображаться на родительский с помощью родительского идентификатора "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, но поле FK в CustomerGroup остается нулевым при сохранении родителя.
Что я здесь не так делаю?
EDIT:
Сохранить код очень простая строка в Database.class
после установки всех необходимых значений для родительского объекта, список CustomerGroup также устанавливается на родительский объект и сохраняется правильно, но не сгенерированный автоматически идентификатор FK
contractRepo.save(contract);
EDIT2:
и если я пытаюсь установить родительский объект в @JoinColumn детей перед сохранением. как
customerGroup.setContractId(contractHolder);
я получаю то, что кажется бесконечным циклом.
проклятый