【问题标题】:How to design a data model which is having a date range?如何设计具有日期范围的数据模型?
【发布时间】:2017-11-22 10:15:46
【问题描述】:

在我的 Spring 应用程序中,我需要设计一个具有日期范围的数据模型。有没有可以使用的数据类型?

目前我做了这样的事情。

@Entity
@Table(name = "scheduled_period")
public class ScheduledPeriod {

    private Date oneDay;

    private Date fromDate;

    private Date toDate;
}

我想将 fromDate 和 toDate 放在类似 dateRange 中

【问题讨论】:

  • 使用LocalDate 表示日期。 Date 表示日期时间,通常是一个不好使用的类。
  • 您要的是仅日期值还是带有时间的日期?

标签: java spring entity


【解决方案1】:

使用 LocalDate 是您的最佳解决方案。
通过使用两个 LocalDate 来开始日期和结束日期。
并与他们合作,请参阅:
HQL / JPA find available items between date range

像 PostgreSQL 这样的一些 DBMS 的数据类型名为:daterange
例如:

CREATE TABLE reservation (room int, during daterange);
INSERT INTO reservation VALUES
    (1108, '[2010-01-01 14:30, 2010-01-01 15:30)');

但 Java (JPA) 不支持 datarange 数据类型。
如果将该表生成为Entity,则生成为Object。

private Object during;

public Object getDuring() {
    return this.during;
}
public void setDuring(Object during) {
    this.during = during;
}

最后,如果您坚持使用 rangedate,您可以使用两个 LocalDate 定义一个名为 RangeDate 的新类(实体)或使用 LocalDate 数组(如果您的 DMBS 支持的话)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多