Как использовать метод getById, чтобы получить соответствующее имя в Spring MVC? - PullRequest
0 голосов
/ 25 апреля 2018

Я изучаю Spring MVC и хочу найти машину через id, но получить взамен name.

В своем классе обслуживания я вызываю универсальный метод getXXXById.Это то, что JPA дает мне от природы.

Я знаю, что я получаю всю сущность, но как я могу просто получить соответствующие name id.

Пример: я звоню getCarById(2), и это возвращает меня Tesla.

Мой стол:

id | Name 
----------
1  | Ford      
2  | Tesla

Мой сервис:

class CarService {

// code ...

public Optional<CarEntity> getCarById(int id) {
    return carRepository.findById(id);
}

1 Ответ

0 голосов
/ 25 апреля 2018

Для этого есть два варианта.

Создание собственного запроса

Вы можете написать свой собственный запрос в JQPL, чтобы получить только имена.

Например, вы можете создать такой метод в своем хранилище.

@Query("select t.name from CarEntity where id = ?1")
public String findNameById(Integer id);

больше информации об этой функции Spring Data Jpa ЗДЕСЬ

Проекция

Второй вариант - сделать прогноз. Как написано в документации

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

Говоря простыми словами, он позволяет объединять запросы формы результатов в некоторый ограниченный набор атрибутов, а не в целую сущность.

Специально для ваших нужд я бы предложил использовать первый подход, но стоит знать и то и другое.

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