【发布时间】:2016-02-12 11:16:58
【问题描述】:
我在使用限制时遇到了问题。我有一张表employee,其结构如下:
id : int (primary key)
create_date : datetime
modified_date: datetime
我正在使用以下代码列出员工是否在特定时间间隔内创建/修改:
Criteria criteria = getSession().createCriteria(Employee.class);
criteria.add(Restrictions.eq("id", employeeId));
if (interval > 0) {
String sql = "{alias}.create_date > DATE_SUB(NOW(), INTERVAL " + interval + " SECOND) OR {alias}.modified_date > DATE_SUB(NOW(), INTERVAL " + interval + " SECOND)";
criteria.add(Restrictions.sqlRestriction(sqlWhere));
}
List<Employee> employeeList = criteria.list();
请注意,SqlRestriction 中有一个 OR 条件。
现在假设 employeeId = 10 和 interval = 3600,employeeList 包含其他员工以及 id=10,这不应该发生。
我应该使用Restrictions.and 还是Restrictions.conjunction 来解决它?还是我错过了其他东西?
【问题讨论】:
-
@user4246662 :我在发布之前已经完成了。我看到这是关于 OR'ing 限制!