Должен ли я создать определенный класс с этими двумя полями?
Да, это один из самых чистых способов достичь того же.
Вы можете использовать прогнозы из 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 документы .