spring-boot - 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
数据库中的字段为空,则返回错误。如何添加异常以便字段到达时没有错误?或者如果最好输入日期,例如当天,因此不会出错?
解决方案
有几种方法可以防止这种情况。
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;
推荐阅读
- javascript - 将带有 bind() 和参数的函数作为回调传递
- python - kivy滚动问题,滚动添加屏幕管理器?
- javascript - 调整多边形上的线条位置
- python - Pandas DataFrame KeyError 1
- angular-cli - 如何防止 Angular 在更改时重新加载我的应用程序但仍允许它保存?
- excel - 如何阻止 Excel VBA 重命名不相关模块和方法中的变量和参数?
- javascript - 在 React JS 中添加仅适用于应用程序的自定义后退按钮
- linux - Zenity:如何创建用户并更改其密码?
- swift - UNUserNotifications 方法“requestAuthorization”在 macOS Catalyst 上不显示对话
- reactjs - 我的 GIF 没有显示在子组件中