Как вернуть поля в Spring Boot, которых нет в модели? - PullRequest
0 голосов
/ 29 марта 2019

Итак, у меня есть сценарий использования, в котором я хочу вернуть определенный атрибут для всех строк таблицы. Но атрибут не существует в таблице. Он должен генерироваться на лету.

Например - таблица с именем Student - имеет следующий атрибут * Я БЫ * Имя

Теперь, когда я использую хранилище для этого класса модели, я хочу вернуть все строки данных, включая ID и Name, но также добавить еще одно свойство с именем URL вместе с каждой строкой. Таким образом, вывод будет -

  • ID
  • Имя
  • URL

Данные для URL могут быть получены на лету - скажем, = "example.com/"+ID

Как мне поступить?

Та же модель / Репозиторий / Класс обслуживания для этой сущности следующие -

Студент-сущность

@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class StudentDetail {

            @Id
            private Long ID;
            private String Name; 

    }

Репозиторий

@Repository
public interface StudentDetail  extends JpaRepository<StudentDetail , Integer> {

}

Услуги

@Override
    public List<StudentDetail> getStudentDetails() {
        List<StudentDetail> studentDetail = studentDetailsRepository.findAll();
        return studentDetail;
    }

Служба вернет все строки только с атрибутами ID и Name. Как рассчитать параметр URL в хранилище?

1 Ответ

2 голосов
/ 29 марта 2019

Вы можете добавить временное поле (это означает, что оно не будет сопоставлено ни с одним столбцом и сохранено):

public class StudentDetail {

        @Id
        private Long ID;
        private String Name;
        @Transient
        private String url = // Here comes your implementation

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...