Как правильно оформить отношения 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)
→ Ссылка