我有 2 张桌子,Partner
并且Visit
. 一个合作伙伴可以有很多次访问,也可以在同一天进行多次访问。我需要创建一个限制以了解自给定日期以来访问了Criteria
多少天。Partner
因此,同一日期的 2 次或多次访问必须只有 1 次。
这只能由Criteria
and完成Restrictions
吗?
我可以从具有以下条件的日期获得所有访问:
Criteria criteria = buildCriteria();
criteria.add(Restrictions.eq(DBConstants.VISIT_COL_VISITOR, partnerVisitor));
criteria.add(Restrictions.ge(DBConstants.VISIT_COL_DATE, startDate));
但是现在,要过滤重复的日子,我需要类似的东西:
criteria.add(Restrictions.unique(DBConstants.VISIT_COL_DATE));
任何想法?
编辑: @user23123412 @netik
Visit.java
private Integer id;
private Date date;
private Partner visitor;
// getters + setters
Visit
与合作伙伴 1 相关的表行:
ID VISITOR DATE
1 1 10/10/2014 16:20
20 1 10/10/2014 18:00
45 1 12/10/2014 16:20
71 1 12/10/2014 19:40
89 1 16/10/2014 11:20
查询后我需要的答案是Visit
自给定.date
IE:如果我启动一个查询visitor = 1
并且startDate = 12/10/2014
结果必须是 2,导致行id = 45
并且id = 71
在同一天有不同的访问,所以它只有一天。