Выберите только два поля из базы данных, используя Spring Data JPA - PullRequest
0 голосов
/ 19 марта 2019

Я хотел бы знать, как лучше восстанавливать из базы данных только два поля сущности, используя Spring Data JPA.

По сути, я хочу избежать полного восстановления объекта объекта в вызове.

Должен ли я создать определенный класс с этими двумя полями? Есть ли способ сделать это динамически?

1 Ответ

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

Должен ли я создать определенный класс с этими двумя полями?

Да, это один из самых чистых способов достичь того же.

Вы можете использовать прогнозы из Spring Data JPA (doc) . В вашем случае создайте интерфейс:

interface ProjectIdAndName{
    String getId();
    String getName();
}

и добавьте следующий метод в свой репозиторий

List<ProjectIdAndName> findAll();

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

Вы можете установить nativeQuery = true в аннотации @Query из класса Repository следующим образом:

public static final String FIND_PROJECTS = "SELECT projectId, projectName FROM projects";

@Query(value = FIND_PROJECTS, nativeQuery = true)
public List<Object[]> findProjects();

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

public List<Project> findAll()

Вероятно, стоит взглянуть и на данные Spring документы .

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