我正在尝试使用 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/