如何设计具有日期范围的数据模型?

时间:2017-11-22 10:15:47

标签: java spring entity

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

目前我做了类似的事。

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

    private Date oneDay;

    private Date fromDate;

    private Date toDate;
}

我想把fromDate和toDate放在一起,比如dateRange

1 个答案:

答案 0 :(得分:0)

通过使用 LocalDate ,您可以获得最佳解决方案。
通过使用两个LocalDate开始日期和结束日期。
并与他们合作,见:
HQL / JPA find available items between date range

一些DBMS就像PostgreSQL的数据类型名称: 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)不支持数据范围数据类型。
如果您将该表生成到Entity中,则会生成Object。

private Object during;

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

最后,如果你坚持使用rangedate,你可以用两个LocalDates定义一个名为RangeDate的新类(Entity),或者使用LocalDate数组(如果你的DMBS支持它)。