SpringData JPA Методы или запрос для выполнения арифметических операций c со столбцами Postgres - PullRequest
1 голос
/ 13 марта 2020

Я новичок в SpringBoot и обращаюсь к таблице postgres с несколькими столбцами и двумя временными метками со столбцами часовых поясов (время начала и время окончания). Помимо извлечения всех столбцов я также хочу отобразить время в секундах (время окончания - время начала). Я расширяю PagingAndSortingRepository (findAll) для извлечения с подкачкой и сортировкой. Пожалуйста, предложите необходимое решение. Будет использовать ReactJS для презентации.

1 Ответ

0 голосов
/ 13 марта 2020

Я не думаю, что уровень представления важен.

Один из способов реализовать это - использовать пользовательский запрос, например:

public interface CustomRepository extends JpaRepository<MyEntity, Long> {

  @Query(value = "SELECT id, column1, column2, (
           SELECT EXTRACT(EPOCH from timezone1) - EXTRACT(EPOCH FROM timezone2)
           FROM table where id = t.id) as difference
         FROM table t", nativeQuery = true)
  List<MyEntityProjection> findAllWithTimestamp();

}

MyEntityProjection - это проекция Интерфейс, содержащий геттеры всех полей плюс геттер для второго различия. Если вы хотите узнать больше о проекциях, вы можете попробовать здесь

PS приведенный выше запрос работает только в PostgreSQL.

...