Ошибка при попытке вычислить разницу между двумя временными метками с помощью Spring-jpa? - PullRequest
1 голос
/ 16 октября 2019

Итак, существует репозиторий spring-jpa с таким методом:

@Query(value = "SELECT user.endWork - user.startWork AS duration FROM USER_TABLE where id in (?1)", nativeQuery = true)
Timestamp getDuration(String id);

Когда я пытаюсь получить длительность между двумя временными метками, возникает ошибка около

Причина:org.hibernate.MappingException: нет сопоставления диалектов для типа JDBC: -104

Но если я сделаю этот sql следующим образом:

 @Query(value = "SELECT user.endWork AS duration FROM USER_TABLE where id in (?1)", nativeQuery = true)
    Timestamp getDuration(String id);

Он работает нормально без ошибок. Как вычислить разницу между двумя временными метками при использовании oracle + jpa?

Для дополнительной информации таблица User выглядит следующим образом:

User
String id;
String name;
Timestamp startWork;
Timestamp endWork;

Я использую базу данных Oracle 11g, а JPA (свойства Hibernate) -настроен так:

properties.put("hibernate.dialect", "org.hibernate.dialect.OracleDialect");

1 Ответ

0 голосов
/ 17 октября 2019

Но как ты хочешь их различить? Это не число. Вы можете рассчитать продолжительность, получив полный пользователь и рассчитать следующим образом:

long duration = user.getEndWork (). GetTime () - user.getStartWork (). GetTime ();

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