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);
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);
相关文章推荐
- Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询
- Hibernate学习笔记---通过load和get方法来查询对象(只能根据主键来查询)
- hibernate 联合查询返回多个对象--引用
- 使用Hibernate条件查询时,无法识别对象属性
- 【hibernate】——hql简单属性+实体对象查询
- 【hibernate】——hql简单属性+实体对象查询
- Hibernate查询(主键,对象导航,HQL,Criteria,SQLQuery,分页)
- hibernate HQL 语句 只查询对象里面的某些属性
- Hibernate查询实体对象
- HQL: Hibernate查询语言(引用)
- VS提示“非静态的字段、方法或属性要求对象引用”
- flex TypeError: Error #1009: 无法访问空对象引用的属性或方法
- JavaScript对象.属性]集锦、事件查询综合
- Error #1009: 无法访问空对象引用的属性或方法 --问过的个问题 解决了 记录下
- hibernate无主键查询
- mx:states包含mx:AddChild 在切换时提示错误"TypeError: Error #1009: 无法访问空对象引用的属性或方法"的解决方法
- Hibernate3.2.6 原生sql 查询使用方法,将查询结果直接转换为POJO,不必非要指定属性大写
- spring + hibernate の HQL 多表查询 合并成一个PO对象的List
- 基础:Hibernate映射引用属性
- Hibernate多对象查询