Сопоставление результирующего набора JPA с новым объектом - PullRequest
0 голосов
/ 02 апреля 2020
public interface ScheduleRepository extends JpaRepository<Schedule, Long> {

@Query(value = "select * from truck t, " +
           "(select  day, end_time, latitude, longitude, start_time, " +
           "truckid, is_open from schedule) s where s.truckid = t.id and day = :today ;"
           , nativeQuery = true)
List<TruckLocation> getTrucksForToday(@Param("today") int today);
...
}

У меня есть этот метод, который выполняет объединение двух таблиц и возвращает некоторые данные. У меня есть объект, который представляет эти данные, который называется TruckLocation (которого нет в БД). Однако он не будет отображаться автоматически (все имена атрибутов совпадают). Я попытался использовать @SqlResultSetMapping и Converter для повторного сопоставления ResultSet, но первый не работает с методом, а второй требует наличия представление базы данных результирующего объекта , что не подходит для моего сценария.

Есть ли чистый (er) способ сделать этот запрос?

1 Ответ

1 голос
/ 19 апреля 2020

определяет интерфейс с методами get, совпадающими с именами возвращаемых атрибутов. например

select x, y, x+y as z from b;

интерфейс будет

interface NonDBEntity{
    getX();
    getY();
    getZ();
}

, а вызов будет

@Query(value = "select x, y, x+y as z from b; ", nativeQuery = true)
List<NonDBEntity> findAllSomething();

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