gpt4 book ai didi

hibernate - 按特定列选择不同的实体

转载 作者:行者123 更新时间:2023-12-02 22:34:30 25 4
gpt4 key购买 nike

我有一个包含 4 列的表:id、column_a 和 column_b

我最初的查询基本上是

Session session = initialize my hibernate session;
Criteria criteria = session.createCriteria(MytableBean.class);
// add some constraints
return criteria.list()

它返回一些结果,例如:

id  |  column_a  | column_b | 
1 | A | 1 |
2 | A | 1 |
3 | A | 2 |
4 | B | 3 |
5 | B | 3 |

但我不想多次获得同一对(column_a、column_b),即使我需要在数据库中多次使用它。

因此,我正在寻找一个返回类似于以下结果的查询:

id  |  column_a  | column_b | 
| A | 1 |
| A | 2 |
| B | 3 |

在sql中我会使用SELECT DISTINCT column_a, column_b FROM ....

但是我不能使用sql(并且尽可能不想使用hql)。

最佳答案

以下内容将实现此目的。将返回 Object[] 列表。

    Criteria criteria = session.createCriteria(MytableBean.class);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("column_a"));
projList.add(Projections.property("column_b"));
projList.add(Projections.groupProperty("column_a"));
projList.add(Projections.groupProperty("column_b"));

criteria.setProjection(projList);
return criteria.list();

关于hibernate - 按特定列选择不同的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com