抱歉这个奇怪的头衔;不知道怎么形容这个。随意建议更正: - )
在我的JPA实体中,我具有以下属性(startTime可以为空):
private LocalDate startDate;
private LocalTime startTime;
是否可以构建一个查询,该查询可以将给定的LocalDateTime与这两个属性进行比较,但是可以动态组合或构建/创建一个由这两个独立属性组成的时间戳?
@Query( "SELECT t FROM Test t " +
"WHERE " +
"t.id = :testId " +
"AND ( " +
"t.startDate >= current_date() " +
"AND (t.startTime IS NULL OR t.startTime >= current_time()) " +
")")
public Page<Test> findBySomething(@Param("testId") Long testId, Pageable pageable);
...这个当然不起作用,因为它比较分开。
我正在寻找的是
...AND new DatabaseDateOrWhatEver(t.startDate, t.startTime) >= current_timestamp...
我使用最新版本的postgresql和spring数据/ -jpa。
答案 0 :(得分:0)
我认为你需要JPQL Datetime Functions:
functions_returning_datetime:= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP
datetime函数返回数据库服务器上当前日期,时间和时间戳的值。
@Query("SELECT t FROM Test t WHERE t.id = :testId AND ( " +
"t.startDate >= current_date " +
"AND (t.startTime IS NULL OR t.startTime >= current_time))")