JPQL 获得列与现在之间的天数差异
JPQL get difference in days between a column and now
我在 spring 引导应用程序中使用休眠和 jpa。
我有一个包含 2 列的休眠实体,type
(字符串)和 date
(LocalDate)。
我想要 select 所有列以及我的日期列和现在之间的天数差异。
我在 PostgreSQL 中成功了:select date, date - current date from table;
我正在使用一个扩展 JpaRepository 的接口。到目前为止,我已经成功地通过 @Query
注释插入了新的查询。
我不知道如何 select 我的列和包含 jpql 天数差异的列。
亲切的问候,
不确定是否可以使用 jpql 执行此操作。
但是您可以直接在存储库中将查询用作本机查询:
@Query(value = "SELECT ... ", nativeQuery = true)
ClassToReturn methodName();
您确实可以使用查询创建器。您必须创建一个新实体,该实体具有与原始 table 相同的列,此外还计算出日期列与现在之间的差异。您必须注意您的列是哪种日期类型。
根据我的经验,只有 java.util 的日期可以用于与 CURRENT_DATE 的差异(我可能是错的)。
public List<NewEntity> getTest() {
String queryStr = "select new com.entity.NewEntity(n.type, n.date - CURRENT_DATE as
time) from Table as n"
TypedQuery<PunteInspectieTimpRamas> query = entityManager.createQuery(queryStr,
NewEntity.class);
return query.getResults()
}
我在 spring 引导应用程序中使用休眠和 jpa。
我有一个包含 2 列的休眠实体,type
(字符串)和 date
(LocalDate)。
我想要 select 所有列以及我的日期列和现在之间的天数差异。
我在 PostgreSQL 中成功了:select date, date - current date from table;
我正在使用一个扩展 JpaRepository 的接口。到目前为止,我已经成功地通过 @Query
注释插入了新的查询。
我不知道如何 select 我的列和包含 jpql 天数差异的列。
亲切的问候,
不确定是否可以使用 jpql 执行此操作。 但是您可以直接在存储库中将查询用作本机查询:
@Query(value = "SELECT ... ", nativeQuery = true)
ClassToReturn methodName();
您确实可以使用查询创建器。您必须创建一个新实体,该实体具有与原始 table 相同的列,此外还计算出日期列与现在之间的差异。您必须注意您的列是哪种日期类型。
根据我的经验,只有 java.util 的日期可以用于与 CURRENT_DATE 的差异(我可能是错的)。
public List<NewEntity> getTest() {
String queryStr = "select new com.entity.NewEntity(n.type, n.date - CURRENT_DATE as
time) from Table as n"
TypedQuery<PunteInspectieTimpRamas> query = entityManager.createQuery(queryStr,
NewEntity.class);
return query.getResults()
}