Я хотел бы создать отношение OneToOne между двумя объектами (также таблицами в mysql).Когда я получаю пост-запрос, я хочу сохранить сущность A, а затем сущность B сохраняется автоматически, потому что в B есть столбец («a_id»), который является внешним ключом первичного ключа в A («id_a»).Как я могу отобразить их correyl?
@Table("a_tb")
public class A(){
@Column(name="id_a")
private Long idA;
@OneToOne(mappedBy = "aId", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, orphanRemoval = true, optional = false)
private B b;
}
@Table("b_tb")
public class B(){
@Column(name="id_b")
private Long idB;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "a_id")
private Long aId;
}
Попытался установить idA в тип A, но когда я вызываю метод get, он зацикливает вызов A с вложенным B, который является вложенным A и так далее ... Iпросто хочу сохранить идентификатор A в B, а не весь объект, иначе он вернет весь объект, когда я вызову метод get и цикл вернется.Отображение правильное, а не автоматическая установка значения в a_id в B.
Я ожидаю, что: когда я создаю A, B получает автоматически идентификатор A и сохраняет его в своемстолбец ("id_a") в db, когда я запрашиваю сохранить объект A. Это должно работать и с delete (когда я удаляю A, B тоже удаляется).Соответствующий JSON будет:
{
"a":{
"id_a": "value",
},
"b":{
"id_b": "value",
"a_id": "id_a"
}
}
Спасибо за совет.