Partner
및 Visit
의 두 테이블이 있습니다. 파트너는 많은 방문을 가질 수 있으며, 같은 날에도 다양한 방문을 할 수 있습니다. 일Partner
에 주어진 날짜 이후로 방문이 몇 번 있었는지 알고 싶다면 Criteria
제한을 만들어야합니다. 따라서 동일한 날짜에 2 번 이상 방문하는 경우는 하나만 있어야합니다.기준 날짜 별 제한 사항
Criteria
및 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));
어떤 생각을?
편집 : 파트너 1 관련 user23123412 @netik
Visit.java
private Integer id;
private Date date;
private Partner visitor;
// getters + setters
Visit
테이블 행 @ :
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
주어진.
즉 : 내가 visitor = 1
및 startDate = 12/10/2014
결과에 쿼리를 실행하면 MUST가 하루 만 그래서 2, 원인 행 id = 45
및 id = 71
가하는 같은 날 다른 방문이 될.
예, 기준을 사용하여이를 수행 할 수 있습니다. JPA에 oneToMany 관계가 있습니까? – user23123412
예, 'OneToMany' 관계는 여러 개의'방문 '을 가질 수있는'파트너 '에 있습니다.하지만 여기서는 중요하지 않습니다.'날짜 '는'파트너 '와 관계가 없으므로 여러 시간으로 여러 번 반복 할 수 있습니다. –
달성하고자하는 데이터베이스 쿼리를 생성 할 수 있습니까? – user23123412