Как правильно оформить отношения manyToOne oneToMany, не подтягивает данные?
Пытаюсь связать две таблицы - posts и post_comments:
@JsonIgnore
@OneToMany(mappedBy = "post")
@Getter
@Setter
@Transient
private Set<PostComment> postComments = new HashSet<>();
@ManyToOne
@JoinColumn(name = "post_id")
private Post post;
Чтобы подтягивать данные о комментах не делая новый запрос в базу.
Метод поста getPostComments возвращает количество комментов 0, хотя они есть.
Подскажите что не так?
Ответы (1 шт):
Автор решения: Elizaveta
→ Ссылка
Скорее всего вы вызываете метод getPostComments вне транзакции, которая вытаскивала данные из базы, т.к. у вас не указан тип fetch, он по умолчанию Lazy, но данные могут быть извлечены только в рамках одной транзакции.
Для того, чтобы просто не делать доп. запрос, то можно указать FetchType.EAGER, который вытащит все данные из таблицы при запросе сущности Post
@OneToMany(mappedBy = "post", fetch = FetchType.EAGER)
