У меня двунаправленные отношения между двумя сущностями.Вот два класса, пропущенные методы получения / установки:
@Entity
@Table(name = "strategy")
public class Strategy {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
@OneToMany(mappedBy = "strategy", cascade = { CascadeType.ALL })
private List<StrategyDetail> details;
}
И
public class StrategyDetail {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String content;
@ManyToOne()
private Strategy strategy;
}
Затем у меня есть хранилище и контроллер, но ничего не стоит упомянуть (мой репозиторий только расширяетJpaRepository и контроллер имеют отображение get / post).
Когда я пытаюсь создать стратегию, я отправляю этот JSON:
{
"name": "my strat",
"details": [{
"content": "my content"
}]
}
, а ответ такой:
{
"id": 1,
"name": "my strat",
"details": [
{
"id": 2,
"content": "my content",
"strategy": null
}
]
}
Я не понимаю, почемустратегия здесь нулевая, отображение довольно очевидно.Когда я тогда пытаюсь получить стратегию, ответ таков:
[
{
"id": 1,
"name": "my strat",
"details": []
}
]
Что, я думаю, работает как задумано (ошибка внешнего ключа, поэтому детали не были сохранены?).
Что я должен изменить, чтобы заставить его работать (то есть иметь доступ к стратегии внутри стратегии подробно)?Еще лучше, я думаю, будет иметь идентификатор стратегии, а не всю стратегию.
Я попытался удалить двунаправленность, удалив свойство стратегии в StrategyDetail, а затем он правильно сохранил детали, но тогда я явно неУ меня нет доступа к полю стратегии внутри деталей ...
Я искал решение по этому вопросу в течение последнего часа, просматривал учебники, а что нет, но я не нашел работающего решения.,