jpa - JPA标准检查输入日期范围是否存在
问题描述
@Entity
@Table(name = "CC_PLANNING_CYCLE")
public class PlanningCycleEntity implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
private Long forcastCycleId;
@Column(name = "FORECAST_CYCLE_NAME")
private String planningCycleName;
@Temporal(TemporalType.DATE)
@Column(name = "TIME_WINDOW_START_DATE")
private Date timeWindowStartDate;
@Temporal(TemporalType.DATE)
@Column(name = "TIME_WINDOW_END_DATE")
private Date timeWindowEndDate;
}
桌子:
|Plan Id | Name |TimewindowStartDate | timeWindowEnddate|
|1 | Plan1 | 01-Jan-2021 | 15-Jan-2021 |
|2 | Plan2 | 18-Jan-2021 | 02-Feb-2021 |
|3 | Plan3 | 20-Feb-2021 | 25-Feb-2021 |
期望的输出:
Input date 1 : 01-Jan-2021 and 17-Jan-2021 --- present
Input date 2 : 10-Feb-2021 and 27-Feb-2021 ---- present
Input Date 3 : 04-Feb-2021 and 10-Feb-2021 --- not present.
请帮助我如何为上述场景编写 JPA 标准查询。
解决方案
您必须使用自定义验证器,您可以在其中根据参数定义最小和最大日期,例如@DateRange(firstDate = "01/01/1900", lastDate="31/12/2025")
@Temporal(TemporalType.DATE)
@Column(name = "TIME_WINDOW_START_DATE")
@DateRange(firstDate = "01/01/1900", lastDate="31/12/2025")
private Date timeWindowStartDate;
推荐阅读
- android - 如何根据时区设置日历
- webpack - 无法使用 Webpack 4 和 Babel 7 导出默认值
- node.js - Arrow function use that is assigned by a module.export object cannot correctly resolve this
- javascript - 如何在自动表格中定义宽度和高度
- javascript - 如何将数据从 UDP 服务器发送到浏览器?
- javascript - 使用jquery在循环中分页上一个和下一个
- git - 如何显示整个 gitkraken 分支树?
- excel - Excel 语句返回基于两个值的成绩
- php - Symfony Legacy/RecursiveValidator 去了?
- python - Matplotlib“缩放到矩形”在薄矩形上不能很好地缩放