如何在 Hibernate 中使用 distinct 关键字

How to use distinct keyword in Hibernate

 String a="DISTINCT std FROM add_std";
 q = ses.createQuery(a);
 List <my.add_std>list = ses.createQuery(a).list();

//如果使用distinct关键字会出错

在这里,如果你希望它由 HQL 完成,那么你使用下面的代码...

String a="DISTINCT std FROM add_std";
q = ses.createQuery(a);
q.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List <my.add_std>list = ses.createQuery(a).list();

否则使用 sql 你需要像

一样迭代每个属性
String a="select distinct s.studentname from student s";
    ListIterator<Object[]> ObjectsIterator = session.createSQLQuery(query).list().listIterator();
    while (ObjectsIterator.hasNext())
    {
     Object object = (Object) ObjectsIterator.next();
     String name = (String) object;
    }