Комментарии 12
Благодарю за полезные ссылки. Обязательно поизучаю Mapstruct и Lombok. С другой стороны, любая задача имеет несколько решений. Вот доказательств теоремы Пифагора более двадцати, но не говорят, что это доказательство неверно, потому, что его не изучают в школьной программе.
0
А аннотация @JsonIgnore вашу задачу не решает более изящно?
0
Та магия, которой вы восхищаетесь, заложена в Spring Data. Spring Boot — всего лишь следствие. Ну и помимо MapStruct (как выше советуют), можно использовать и Lombok
+1
Зачем в пипл репозитории два метода которые делают одно и то же, и на первый к тому же повешена аннотация которая делает в точности то что описывает название метода (то есть спринг дата сам справится с квери)?
Суть дто не в том чтобы это был микросервис который перегонит юзеров из сущностей в объекты, а в том что хранить уже перегнанные данные, то есть метод который называется get… и принимает список пиплов это минимально дичь, то есть вы создаёте объект чтобы создать ещё объектов, в таком случае лучше было бы сделать фабрику или статический метод
Думаю тот кто будет использовать ваш код просто офигеет когда метод начинающийся на get потребует внутрь что либо, и вернёт список объектов своего же типа
Суть дто не в том чтобы это был микросервис который перегонит юзеров из сущностей в объекты, а в том что хранить уже перегнанные данные, то есть метод который называется get… и принимает список пиплов это минимально дичь, то есть вы создаёте объект чтобы создать ещё объектов, в таком случае лучше было бы сделать фабрику или статический метод
Думаю тот кто будет использовать ваш код просто офигеет когда метод начинающийся на get потребует внутрь что либо, и вернёт список объектов своего же типа
0
Аннотация ManyToMany к Spring Boot вообще никого отношения не имеет. К JPA да, хибернейту да, к другим ORMмкам может быть. Но Spring Boot это совсем о другом.
+1
Мне кажется (я точно ловил), что будет NullPointerException при получении списка песен
Т.к. гибернейт успевает закрыть транзакцию после чтения списка people-ов, и EAGER поля остаются невычитанными из БД. Соответственно, весь метод преобразования Entity в DTO с чтением EAGER полей нужно оборачивать в @Transactional аннотацию.
people.getSongItems()
Т.к. гибернейт успевает закрыть транзакцию после чтения списка people-ов, и EAGER поля остаются невычитанными из БД. Соответственно, весь метод преобразования Entity в DTO с чтением EAGER полей нужно оборачивать в @Transactional аннотацию.
0
Пробовали
@JsonBackReference
и @JsonManagedReference
?0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Spring Boot решение задачи с ManyToMany