实体中的日期计算

时间:2014-09-24 10:36:17

标签: java jpa hibernate-mapping

我有像这样的实体类

 @Entity
 public class CheckInstrument extends BaseEntity {
    public CheckInstrument() {
    }
    @Column(nullable = false)
    private Date currentCheck;
    @Column(nullable = false)
    private Long periodicity;
    @Column
    private Date nextCheck;
    @Column
    private boolean isExpired;`

    (getters and setters)

我的问题是

  1. СalculatenextCheck,例如添加periodicity(month) currentCheck
  2. 计算isChecked属性,将nextCheck与当前值进行比较 系统日期。

1 个答案:

答案 0 :(得分:1)

我认为你的问题是纯日期计算问题,与Hibernate或jpa实体无关。

所有代码都不是用IDE编写的,也未经过测试:

  • 计算nextCheck,例如将periodicity(month)添加到currentCheck

您可能需要查看Calendar课程

Calendar cal = Calendar.getInstance();
cal.setTime(currentCheck);
cal.add(Calendar.MONTH,1);
currentCheck = cal.getTime();
  • 计算isChecked属性,将nextCheck与当前系统日期进行比较。

java.util.Date实现Comparable,因此您可以比较两个日期,例如:

int result = date1.compareTo(date2);

问题:nextCheck.compareTo(new Date())

IMO,isExpired / overdued不应添加为数据库字段。因为它是相关的当前日期。通过计算获得该标志会更好,以使其成为实时。嗯,无论如何都符合你的要求。