весенняя загрузка: отправка данных на 1 конечную точку, но скрытие от других

#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:

Два решения, вы можете попробовать любое из них..

  1. Создайте два POJO, один с 3 полями, а другой с 2 полями, и возвращайте соответственно.
  2. Если вы не хотите отдельного pojo, тогда установите значение всех 3 полей в pojo и при вызове /e2 выполните итерацию по нему и явно вычеркните то значение, которое вы хотите скрыть.