【发布时间】:2020-03-13 23:50:44
【问题描述】:
我需要将两个日期之间的差异计算为 SQL 方言到我的休眠存储库中,我尝试了很多解决方案,但现在它不起作用,我不断收到此错误:
org.hibernate.MappingException:没有 JDBC 类型的方言映射:-104
注意:查询直接在 SQL 中的 DBeaver 中运行,而不是在 Spring 中。
我正在使用 Springboot、hibernate、oracle。
我必须通过我的 springboot REST 控制器将计算出的新时间(作为“持续时间”)公开为 json 格式,如下所示: 高:毫米:秒 这个想法是我在前端有一个数据表,在表格中显示一些信息,我想显示计算出的时间。
这是我的存储库:
public interface BatchInfosJoinRepository extends JpaRepository<BatchInfosJoin, Long> {
@Query(value = "SELECT ji.JOB_NAME, bse.STEP_NAME, bse.STATUS,bse.START_TIME, bse.END_TIME, bse.END_TIME - bse.START_TIME AS DATE_DIFF " +
" FROM BATCH_JOB_EXECUTION bje INNER JOIN BATCH_STEP_EXECUTION bse ON bje.JOB_EXECUTION_ID = bse.JOB_EXECUTION_ID " +
" INNER JOIN BATCH_JOB_INSTANCE ji ON ji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID", nativeQuery = true)
Set<Object[]> fetchStepJoin();
}
我的模型实体“BatchInfoJoin”:
@Entity
public class BatchInfosJoin {
@Id
@Column(name = "step_execution_id")
private Long stepExecutionId;
@Column(name = "job_name")
private String jobName;
@Column(name = "step_name")
private String stepName;
@Column(name = "status")
private String status;
@Column(name = "start_time")
private Date startTime;
@Column(name = "end_time")
private Date endTime;
@Column(name = "date_diff")
private Date dateDiff;
}
或者我应该使用 Java 中的特殊“Util”类来计算它吗?
【问题讨论】:
-
@XtremeBaumer :感谢您的链接,我已经看过它们(我无法理解第一个),但是有人可以为我的问题提供更具体的答案吗?其次,如果要进行精确选择并将特定列返回给我的控制器,我该如何使用整个记录(如 stackoverflow 链接中所述)?
-
我认为这就是您正在寻找的答案:stackoverflow.com/a/27166944/10496246
标签: java sql oracle hibernate date