Java 冬眠。检查daterange是否在另一个daterange内

Java 冬眠。检查daterange是否在另一个daterange内,java,hibernate,Java,Hibernate,这听起来很简单,但我就是想不起来 我的数据库中有两个字段。availableFromDate和availableToDate 用户正在进行搜索,以查找给定范围内可用的所有实体。因此,我的行动有两个日期: searchFromDate和searchToDate 我需要做的就是返回在用户指定的整个时间段内可用的所有实体 最好使用标准 有人吗?如果我正确理解您的问题-即活动可用性应完全在搜索日期范围内-则应归结为: 如果您确保“availableFromDate.before(availableToD

这听起来很简单,但我就是想不起来

我的数据库中有两个字段。availableFromDate和availableToDate

用户正在进行搜索,以查找给定范围内可用的所有实体。因此,我的行动有两个日期:

searchFromDate和searchToDate

我需要做的就是返回在用户指定的整个时间段内可用的所有实体

最好使用标准


有人吗?

如果我正确理解您的问题-即活动可用性应完全在搜索日期范围内-则应归结为:

如果您确保“availableFromDate.before(availableToDate)”和“searchFromDate.before(searchToDate)”在本例中无论如何都应该这样做,那么availableFromDate和availableToDate都必须在搜索日期范围内

您可以使用此答案中的解决方案确保两个日期都在范围内:


谢谢你的贡献,大卫!你几乎把它做好了。正好相反。搜索日期范围必须完全在可用性范围内。换句话说,我只想返回那些至少在整个搜索范围内可用的实体。
criteria.add(Restrictions.between("availableFromDate", searchFromDate, searchToDate));
criteria.add(Restrictions.between("availableToDate", searchFromDate, searchToDate));