如果对引用对象的id查询,则可以不用建立引用,很经典的语句如下:
DetachedCriteria dc = DetachedCriteria.forClass(Student.class);
dc.add(Restrictions.like("team.id", teamId, MatchMode.ANYWHERE));
但如果是对引用对象的非主键查询,上述查询语句就会报错,必须用createAlias方法为引用对象建立别名,代码如下:
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while(it.hasNext()) {
Entry<String, String> entry = it.next();
detachedCriteria.createAlias(entry.getKey(), entry.getValue());
}
上述查询结果有查询对象,也有引用对象,如果只想有查询对象的结果集,只需加上:
criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);