有时候我问了一个关于如何使用Hibernate进行Distinct查询的问题。现在我已经超越了这个里程碑,我还需要另外一件事。就是这个表,
---------------------------------------
| user_id | user_name | user_type |
---------------------------------------
| 1 | mark taylor | admin |
| 2 | bill paxton |co-ordinator|
| 1 | tony brooks | admin |
| 3 | ali jahan | developer |
---------------------------------------
我想创建一个独特的查询,它返回不同的user_type以及它对应的user_id。 请注意,特定user_type的user_id相同。例如,
admin = 1
co-ordinator = 2
developer = 3
所以我期待的回报有点像ArrayList或包含两个值的排序
user_id,user_type
为获得Distinct UserType而编写的代码如下,我希望可以对其进行一些修改以获得所需的结果。
public List<String> findDistinctUserName() throws HibernateException {
List<String> returnVal = new ArrayList<String>();
Criteria c = this.createCriteria();
c.setProjection(Projections.distinct(Projections.property("userType")));
c.addOrder(Order.asc("userType"));
List<String> userTypeList = c.list();
for(String userType : userTypeList) {
if(!userType.equalsIgnoreCase("")) {
returnVal.add(userType);
}
}
return returnVal;
}
提前感谢您的回答。
答案 0 :(得分:0)
试试这个:
criteria.setProjection(Projections.distinct(Projections.property(&#34; userType&#34;)),&#34; userType&#34;);
你也不必检查空白字符串,试试这个:
criteria.add(Restrictions.ne(&#34; USERTYPE&#34;&#34;&#34));