我正试图在我的专栏中获得明确的#34; testType"在表格中#34;测试"。 我也希望得到" testType"和" testId"在我的清单中。为此,我这样做 但它并没有应用不同的,给我重复的结果。
我知道如何解决这个问题?
Session session = sessionFactory.openSession();
Criteria crit = session.createCriteria(Test.class);
ProjectionList proList = Projections.projectionList();
proList.add(Projections.property("testType"));
proList.add(Projections.property("testId"));
crit.setProjection(proList);
crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List rsList = crit.list();
提前致谢。
答案 0 :(得分:1)
获取testType的不同值
Session session = sessionFactory.openSession();
List results = session.createCriteria(Test.class);
.setProjection(Projections.distinct(Projections.property("testType")))
.list();
但是要获得id,你也不能选择它,因为每个Type可能有很多id,例如:
testId | testType
-----------------
1 | type1
2 | type2
3 | type1
4 | type2
6 | type3
7 | type3
Select Distinct(testType), testid
应该返回什么?
1)
Session session = sessionFactory.openSession();
List results = session.createCriteria(Test.class);
.setProjection(Projections.projectionList()
.add(Projections.group(Projections.property("testType"))))
.add(Projections.Min(Projections.property("testid")))))
.list();
2)
Session session = sessionFactory.openSession();
List results = session.createCriteria(Test.class);
.setProjection(Projections.projectionList()
.add(Projections.group(Projections.property("testType"))))
.add(Projections.Max(Projections.property("testid")))))
.list();