1、简介
2、一对多查询的过滤
3、or 查询
4、对象属性的属性查询
DetachedCriteria r1 = DetachedCriteria.forClass(ResourceDownLog.class)
.setProjection(Property.forName("id"))
.add(Restrictions.eq("viewer.id", user.getId()));
List ls1 = findByCriteria(r1); //id
DetachedCriteria r2 = DetachedCriteria.forClass(ResourceDownLog.class)
.createAlias("resource", "resource")
.setProjection(Property.forName("resource.id"))
.add(Restrictions.eq("viewer.id", user.getId()));
List ls2 = findByCriteria(r2); //resource.id
DetachedCriteria r3 = DetachedCriteria.forClass(ResourceDownLog.class)
.createAlias("resource", "resource")
.setProjection(Property.forName("id"))
.add(Restrictions.eq("viewer.id", user.getId()))
.setProjection(Projections.distinct(Projections.projectionList().add(Projections.property("resource"), "resource")));
List ls3 = findByCriteria(r3); //Message
DetachedCriteria r4 = DetachedCriteria.forClass(ResourceDownLog.class)
.createAlias("resource", "resource")
.add(Restrictions.eq("viewer.id", user.getId()))
.setProjection(Projections.distinct(Projections.projectionList().add(Projections.property("resource.id"), "resource.id")));
List ls4 = findByCriteria(r4); //resource.id