java - JPA 通过时间戳获取条目

标签 java jpa

我正在尝试使用 jpa 从实体类中检索今天的所有记录。

我的实体类有一个创建日期属性。

public class SingleTripDetails {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private SingleTripDetailsStatus status = SingleTripDetailsStatus.MATCHED;

    @CreationTimestamp
    private Timestamp dateCreated;

    @JsonIgnore
    @Column(insertable = false, updatable = true)
    @UpdateTimestamp
    private Timestamp lastModified;
}

我正在尝试通过dateCreated 属性获取所有记录。

public List<SingleTripDetails> findByStatusAndDateCreated(SingleTripDetailsStatus status, Timestamp date);

我在数据服务类中执行以下操作

public List<SingleTripDetails> getAmountMadeToday(Date date, String email) {
        return driverRiderApplicationRepository.findByStatusAndDateCreated(SingleTripDetailsStatus.ENDED, new Timestamp(date.getTime()));
    }

but it does not work. What could I be doing wrong?

最佳答案

处理日期是一个非常棘手的部分,时间戳可以保存到纳秒的精度。

让我们看看您的存储库方法

driverRiderApplicationRepository.findByStatusAndDateCreated(

这将在 Status 和 DateCreated 上进行精确匹配,而不知道数据库中保存的数据,我只是假设日期与时间一起存储。

据我了解,您希望今天获得所有金额,我建议(对我来说最安全的方式)您更改您的存储库方法,如下所示

findByStatusAndDateCreatedBetween(Statustype status, Timestamp t1, Timestamp t2)

现在

时间戳 t1 中: 提供时间为 00:00 的日期

时间戳t2: 提供与23:59相同的日期和时间

关于java - JPA 通过时间戳获取条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58715773/

相关文章:

jpa - 使用 JPA(设计)备份数据库

java - 如何修复我的代码,以便将这些 'players' 排序到正确的 'teams' 中

java - Spring 数据 : JPA and Nested Transaction

java - JPA实体: inheritance and one-to-one relationship not working simultaneously

java - spring.kafka.consumer.auto-offset-reset 在 spring-kafka 中如何工作

java - 当我从 CDI 支持 bean 调用 EJB Dao 时,返回实体中的 @OneToMany 集合将被清除并为空

java - 丢失的更新-Java,Spring和JPA

java - 初学者 Swing

java - Spring Data MongoDB 聚合 $out 管道

java - elasticsearch 高亮java api 客户端 - 当来自elasticsearch 的搜索响应时显示高亮