目的:通过hibernate查询一个表中两个列的值,得到的值需要是做过distinct。最后需要使用别名得到值内容(value key)。
使用
List list =(List) this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
return session.createSQLQuery(sql ).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list();
}
});
这样能查询到要的结果,但是不给sql 里的内容使用别名。
换使用 createQuery(hql) 中使用new map(value as v,text as t) 可以得到结果,但是却无法进行去重,不能使用distinct。
最后也没搞明白为什么不可以,最后只有把值查询到在外面做的去重。
在此记录一下。
本文探讨了在Hibernate中如何实现对表中的两列进行distinct查询,并使用别名展示查询结果的方法。文中对比了使用createSQLQuery和createQuery的不同之处,最终采取了在Java层面去除重复数据的解决方案。
180

被折叠的 条评论
为什么被折叠?



