您的位置:首页 > 其它

Hibernate引用对象非主键属性的查询

2016-12-09 10:37 302 查看
如果对引用对象的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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息