首页 > 解决方案 > Spring Boot 中的 DB 字段为空问题

问题描述

我有一种方法Spring Boot可以从登录的员工那里收集各种数据库日期。

private boolean isActiveThisMonth(EmployeeView emp,LocalDate date){
        return (emp.getHiringDate().withDayOfMonth(1).minusDays(1).isBefore(date.withDayOfMonth(1)) && (emp.getLeavingDate()==null ||
                emp.getLeavingDate().plusMonths(1).withDayOfMonth(1).isAfter(date.with(lastDayOfMonth()))));
    }

目前,如果hiringDate数据库中的字段为空,则返回错误。如何添加异常以便字段到达时没有错误?或者如果最好输入日期,例如当天,因此不会出错?

标签: spring-boot

解决方案


有几种方法可以防止这种情况。

1.

isActiveThisMonth你可以像这样处理里面的空值

private boolean isActiveThisMonth(EmployeeView emp,LocalDate date){
    LocalDate hiringDate = emp.getHiringDate() != null ? emp.getHiringDate() : LocalDate.now();
    return (hiringDate.withDayOfMonth(1).minusDays(1).isBefore(date.withDayOfMonth(1)) && (emp.getLeavingDate()==null ||
            emp.getLeavingDate().plusMonths(1).withDayOfMonth(1).isAfter(date.with(lastDayOfMonth()))));
}

您可以确保在创建 Employee 时在实体中设置该值。

  @Column(name = "hire_date", columnDefinition = "DATE DEFAULT CURRENT_DATE")
  private jDate startDate;

推荐阅读