Я запускаю тесты целостности в проекте Spring Boot 2.1.4 с JUnit 4.12, и у меня возникла проблема при выполнении теста конечной точки сохранения (комментария) в двунаправленном отношении типа @OneToOne - @ManyToOne, когда я использую Аннотации @JsonManagedReference и @JsonBackReference во избежание рекурсии.
Проблема заключается в том, что при запуске теста родительский (класс Author) отношения не конвертируется в JSON, а только дочерний (класс Comment). ), но без ссылки на родителя.
Объект класса Comment, полученный для преобразования его в JSON ![enter image description here](https://i.stack.imgur.com/359S5.png)
Результат преобразования объекта Комментарий класса к JSON, где родитель? ![enter image description here](https://i.stack.imgur.com/jd1MM.png)
DDL таблиц в базе данных H2
CREATE TABLE IF NOT EXISTS `author` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`created` TIMESTAMP NULL,
`modified` TIMESTAMP NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `comment` (
`id` INT NOT NULL AUTO_INCREMENT,
`review` VARCHAR(255) NOT NULL,
`author_id` INT NOT NULL,
`created` TIMESTAMP NULL,
`modified` TIMESTAMP NULL,
PRIMARY KEY (`id`),
INDEX `fk_comment_author_idx` (`author_id` ASC),
CONSTRAINT `fk_comment_author` FOREIGN KEY (`author_id`) REFERENCES `author` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = InnoDB;
Родительский объект
@JsonManagedReference("author_comment")
@OneToMany(mappedBy = "author", cascade = {CascadeType.ALL}, orphanRemoval = true)
private List<Comment> comments = new ArrayList<>();
Дочерний объект
@JsonBackReference("author_comment")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "author_id")
private Author author;