Java 冬眠。检查daterange是否在另一个daterange内
这听起来很简单,但我就是想不起来 我的数据库中有两个字段。availableFromDate和availableToDate 用户正在进行搜索,以查找给定范围内可用的所有实体。因此,我的行动有两个日期: searchFromDate和searchToDate 我需要做的就是返回在用户指定的整个时间段内可用的所有实体 最好使用标准Java 冬眠。检查daterange是否在另一个daterange内,java,hibernate,Java,Hibernate,这听起来很简单,但我就是想不起来 我的数据库中有两个字段。availableFromDate和availableToDate 用户正在进行搜索,以查找给定范围内可用的所有实体。因此,我的行动有两个日期: searchFromDate和searchToDate 我需要做的就是返回在用户指定的整个时间段内可用的所有实体 最好使用标准 有人吗?如果我正确理解您的问题-即活动可用性应完全在搜索日期范围内-则应归结为: 如果您确保“availableFromDate.before(availableToD
有人吗?如果我正确理解您的问题-即活动可用性应完全在搜索日期范围内-则应归结为: 如果您确保“availableFromDate.before(availableToDate)”和“searchFromDate.before(searchToDate)”在本例中无论如何都应该这样做,那么availableFromDate和availableToDate都必须在搜索日期范围内 您可以使用此答案中的解决方案确保两个日期都在范围内:
谢谢你的贡献,大卫!你几乎把它做好了。正好相反。搜索日期范围必须完全在可用性范围内。换句话说,我只想返回那些至少在整个搜索范围内可用的实体。
criteria.add(Restrictions.between("availableFromDate", searchFromDate, searchToDate));
criteria.add(Restrictions.between("availableToDate", searchFromDate, searchToDate));