#spring-data-jpa #crud
#весна-данные-jpa #грязь #spring-data-jpa #crud
Вопрос:
[{"uSID":1,"userId":"12","firstname":"shiva","lastname":"shubham","email":"shiva","phone":"586868768","active":"y","profile":{"pRID":98,"profileId":"78","profileName":"sh","paddress":"pune","surname":"sharma","pfname":"master"},"branch":{"bRID":2,"branchName":"zende","branchCode":"7899","add2":null,"city":null,"baddress":null,"add1":null}},
это мой json format.in у моих пользователей есть профиль внешнего ключа и ветвь. при выборке с помощью / geAllUsers мне нужно показать всего несколько полей ветви, например.
"bRID":2,"branchName":"zende","branchCode":"7899
какой тип кода я использую для записи в spring data jpa
Комментарии:
Ответ №1:
Поскольку предоставленная информация ограничена, я предполагаю, что отправленный вами JSON является текущим выводом из вашего API для пользователя.
Это может быть обработано следующими двумя способами
-
Добавить пользовательский сериализатор — вы можете добавить пользовательский сериализатор и аннотировать им класс DAO / Entity. Это работает при преобразовании объекта в JSON. Итак, spring возвращает все поля, но только выбранные поля будут сериализованы в json и возвращены пользователю. Недостаток — поскольку вы добавляете аннотацию на уровне класса, это будет применимо к каждому экземпляру, в котором возвращается этот объект. Чтобы справиться с этим, вы можете создать DAO, добавить аннотацию к DAO, преобразовать объект в DAO и вернуть DAO.
-
Пользовательские платформы отображения, такие как ModelMapper или MapStruct — это был бы более идеальный способ. Это происходит внутри сервиса, в отличие от предыдущего, который происходит во время сериализации. Вы можете создать класс DAO по мере необходимости (с нужными вам полями) и использовать любую из этих платформ для преобразования вашей сущности в требуемый DAO. Код будет очень минимальным и оптимизированным. И вы можете использовать его только тогда, когда хотите ограничить поля.
В Интернете вы можете найти множество руководств, касающихся обоих вышеперечисленных.
PS — Если вы думаете, какой из них использовать между ModelMapper и Mapstruct, Mapstruct обладает лучшей производительностью, в то время как ModelMapper прост в реализации.