gpt4 book ai didi

java - Spring Data JPA 时间戳比较

转载 作者:行者123 更新时间:2023-12-02 10:43:18 28 4
gpt4 key购买 nike

我正在尝试将 native 查询转换为规范。我陷入了这种情况:

....
WHERE
TIMESTAMP(D_DATA, D_TIME) >= '2015-06-23 05:46:53.000000'

有没有办法获得与规范相同的结果?

谢谢

最佳答案

感谢 Paul Vernon,我决定:

public static Specification<Transit>compareTimestamps(Timestamp timestamp){
LocalTime localTime = timestamp.toLocalDateTime().toLocalTime();
LocalDate localDate = timestamp.toLocalDateTime().toLocalDate();
Specification<Transit> dateSpec = compareDateWithTimestamp(localDate);
Specification<Transit> dateTimeSpec = compareDateAndTimeWithTimestamp(localDate, localTime);
return where(dateSpec).or(dateTimeSpec);
}

private static <T>Specification<T> compareDateWithTimestamp(LocalDate localDate){
return (Specification<T>) (root,query,cb) -> cb.greaterThan(root.get("dTrn"),localDate);
}
private static <T>Specification<T> compareDateAndTimeWithTimestamp(LocalDate localDate, LocalTime localTime){
return (Specification<T>) (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
predicates.add(cb.equal(root.get("dTrn"),localDate));
predicates.add(cb.greaterThanOrEqualTo(root.get("dTimTrn"),localTime));
return cb.and(predicates.toArray(new Predicate[]{}));
};
}

关于java - Spring Data JPA 时间戳比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52774714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com