[英]Hibernate Criteria to find Duplicates
I want to get the duplicate entries. 我想获得重复的条目。 I want to use the query as criteria, for this i am using the below code. 我想使用查询作为标准,为此我使用下面的代码。
SELECT * from A
WHERE field in (
SELECT field from A
GROUP BY field HAVING COUNT(field) > 1
);
The Hibernate mapping is like Hibernate映射就像
@Entity
class A{
...
private String field;
...
}
How can I get list of A that have duplication in 'field' column? 如何在“字段”列中获取具有重复的A列表?
My own answer according prompted Anthony Accioly 根据安东尼·阿西奥利的提示,我自己的回答
final Criteria searchCriteria = session.createCriteria(A.class);
...
final DetachedCriteria d1 = DetachedCriteria.forClass(A.class);
d1.setProjection(Projections.count("field"));
d1.add(Restrictions.eqProperty("field", "AA.field"));
final DetachedCriteria d2 = DetachedCriteria.forClass(A.class, "AA");
d2.setProjection(Projections.projectionList()
.add(Projections.groupProperty("field")));
d2.add(Subqueries.lt(1L, d1));
criteria.add(Property.forName("field").in(d2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.