Двунаправленное отображение не подхватывает родительский - PullRequest
0 голосов
/ 22 сентября 2018

У меня двунаправленные отношения между двумя сущностями.Вот два класса, пропущенные методы получения / установки:

@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, а затем он правильно сохранил детали, но тогда я явно неУ меня нет доступа к полю стратегии внутри деталей ...

Я искал решение по этому вопросу в течение последнего часа, просматривал учебники, а что нет, но я не нашел работающего решения.,

...