2017-11-22 5 views
0

스프링 애플리케이션에서 날짜 범위가있는 데이터 모델을 디자인해야합니다. 사용할 수있는 데이터 유형이 있습니까?날짜 범위가있는 데이터 모델을 설계하는 방법은 무엇입니까?

현재 나는 이와 같은 작업을 수행했습니다.

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

    private Date oneDay; 

    private Date fromDate; 

    private Date toDate; 
} 

나는 LOCALDATE를 사용하여 DATERANGE

+2

'LocalDate'를 사용하여 날짜를 나타냅니다. 'Date'는 datetime을 나타내며 일반적으로 사용하기에 좋지 않은 클래스입니다. – Kayaman

+0

날짜 전용 값이나 시간대가있는 날짜를 묻는 중입니까? –

답변

0

최선의 해결책은, 당신처럼 뭔가에 함께 FROMDATE 및 TODATE을 넣고 싶다.
두 개의 LocalDate를 사용하여 시작 날짜와 종료 날짜를 사용합니다.
그들과 함께 작업을 참조하십시오 DATERANGE 예를 들어
: PostgreSQL을 같은
HQL/JPA find available items between date range

일부 DBMS의의라는 데이터 타입이

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

하지만 자바 (JPA)이 datarange를 지원하지 않습니다 데이터 형식.
해당 테이블을 Entity로 생성하면 Object로 생성됩니다.

private Object during; 

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

마지막으로, 당신은 rangedate를 사용하는 지속되면, 당신은 두 LocalDates와 RangeDate라는 새 클래스 (법인)를 정의 할 수 있습니다 또는 (당신의 DBMS에 그것을 지원하는 경우) LOCALDATE의 배열을 사용합니다.