无外键多表查询时编写hql,直接使用逗号分隔表,where作为联合查询条件进行查询。
查询出来的结果可为两种,List<List<Object>>或者List<Map<String,Object>>。
这时候需要使用下面语句限定查询返回结果类型。
//List<Map<String,Object>>
Query query = getSessionFactory().openSession().createHQLQuery(queryString).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List<Map<String,Object>> tmp = query.list(); Map<String,Object> result = tmp.get(0); String str = result.get('1');
//List<List<Object>>
Query query = getSessionFactory().openSession().createHQLQuery(queryString).setResultTransformer(Transformers.TO_LIST); List<List<Object>> tmp = query.list(); List<Object> result = tmp.get(0); String str = result.get(1);