Имею сущность User
и сущность Thing
.
Сущность Thing
ссылается на User
с отношением ManyToOne:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
@NotNull
private User user;
Мне надо вытащить Thing
вместе с User
, к которому он относится, причём User
должен вытаскиваться как реальный объект, а не обёртка. Как это сделать?
Для того, чтобы вытащить сущность, которая отмечена FetchType.Lazy
, необходимо использовать метод Hibernate.unproxy()
, который возвращает реальную сущность, без обёртки. Разумеется, этот метод необходимо вызывать в транзакции.
Конкретно для моего примера это выглядело бы так:
@Transactional
public void getWithUser(int id) {
Thing thing = repository.findById(id);
thing.setUser(Hibernate.unproxy(thing.getUser()));
return thing;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
WebView не может выгрузить ссылку с meta refreshОткрывает окно "Не удалось найти страницу"
Пытаюсь изучить api в springGET Запрос хорошо посылается, а вот POST пока сложно