Выделите только обязательные столбцы, используя собственный SQL-запрос при весенней загрузке - PullRequest
0 голосов
/ 08 мая 2018

Я интегрировал нативный запрос весной JPA данных, который в основном выбирает все дочерние и его родительские папки.

class Folder{
      int x;
      int y;
      int z;
    }

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

org.postgresql.util.PSQLException: The column name tpc_msc10_project_id was not found in this ResultSet.

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

 @Query(nativeQuery=true,value="select x,y from folder with some condition")
        List<Folder> getAllChildFoldersByParentFolderId(@Param("folderId")Integer folderId);

Итак, нельзя ли выбрать только несколько столбцов из Resultset, используя собственный запрос?

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Вы можете использовать интерфейс проекция для собственного запроса, а также для обычного запроса JPQL:

public interface FolderProjection {
    Integer getX();
    Integer getY();
}

@Query(value = "select f.x as x, f.y as y from folders f where f.id = ?1", nativeQuery = true)
List<FolderProjection> getFolderProjection(Integer folderId);

Обратите внимание на псевдонимы (f.x как x), которые необходимы для бесперебойной работы метода ...

0 голосов
/ 08 мая 2018

Да, вы можете сделать это:

@Query(value = "select handle from table_name where handle like 'DN%' order by handle desc limit 1", nativeQuery = true)
String getMaxTempHandle();   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...