#java #spring #spring-boot #hibernate #spring-data-jpa
#java #весна #весенняя загрузка #спящий режим #spring-data-jpa
Вопрос:
У меня есть простое приложение spring boot, моя модель содержит 3 поля. и контроллер предоставляет 2 конечные точки / e1 и / e2. чего я хочу добиться, так это того, что при вызове /e1 я хочу вернуть все 3 поля из моей модели, когда вызывается /e2, я должен был вернуть только 2 поля и скрыть от него 3-е поле.
есть ли способ сделать это и как это можно сделать? Спасибо
Комментарии:
1. Можете ли вы хотя бы показать какой-нибудь фрагмент, над которым вы работаете?
Ответ №1:
Во-первых, у вас всегда должно быть 2 класса — entity и его представление dto — даже если их поля очень похожи. Это дает вам:
- независимо от внешних потребителей, вы можете изменить свою модель в будущем, но контракт остается прежним
- возможность использовать преимущества гибкой загрузки
- легко решите вашу проблему: просто создайте 2 DTO, один со всеми полями, другой без скрытого поля.
Возможно, вам понадобится bean mapper для преобразования сущности в DTO.
Ответ №2:
Два решения, вы можете попробовать любое из них..
- Создайте два POJO, один с 3 полями, а другой с 2 полями, и возвращайте соответственно.
- Если вы не хотите отдельного pojo, тогда установите значение всех 3 полей в pojo и при вызове /e2 выполните итерацию по нему и явно вычеркните то значение, которое вы хотите скрыть.