Тестирование спящего режима OneToMany - PullRequest
0 голосов
/ 25 марта 2020

Я запускаю тесты целостности в проекте Spring Boot 2.1.4 с JUnit 4.12, и у меня возникла проблема при выполнении теста конечной точки сохранения (комментария) в двунаправленном отношении типа @OneToOne - @ManyToOne, когда я использую Аннотации @JsonManagedReference и @JsonBackReference во избежание рекурсии.

Проблема заключается в том, что при запуске теста родительский (класс Author) отношения не конвертируется в JSON, а только дочерний (класс Comment). ), но без ссылки на родителя.

Объект класса Comment, полученный для преобразования его в JSON enter image description here

Результат преобразования объекта Комментарий класса к JSON, где родитель? enter image description here

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...