有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JPA通过时间戳获取条目

今天我试图使用jpa从实体类检索所有记录

我的实体类有一个date created属性

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?

共 (1) 个答案

  1. # 1 楼答案

    处理日期是一个非常棘手的部分,时间戳可以节省高达纳秒的精度

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

    driverRiderApplicationRepository.findByStatusAndDateCreated(
    

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

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

    findByStatusAndDateCreatedBetween(Statustype status, Timestamp t1, Timestamp t2)
    

    现在

    在时间戳t1中:provide a date with time as 00:00

    在时间戳t2中:provide the same date with time as 23:59