【问题标题】:Error when try to compute difference between two timestamps with Spring-jpa?尝试使用 Spring-jpa 计算两个时间戳之间的差异时出错?
【发布时间】:2019-10-16 19:53:43
【问题描述】:

所以,有这样的方法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
String id;
String name;
Timestamp startWork;
Timestamp endWork;

我使用 Oracle 11g 数据库,JPA(Hibernate 属性)配置如下:

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

【问题讨论】:

    标签: sql spring jpa


    【解决方案1】:

    但是你想如何区分它们呢?这不是一个数字。您可以通过获取完整用户来计算持续时间并计算如下:

    持续时间长 = user.getEndWork().getTime() - user.getStartWork().getTime();

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      相关资源
      最近更新 更多