一尘不染

使用DISTINCT关键字会导致此错误:不是SELECTED表达式

hibernate

我有一个查询,看起来像这样:

SELECT DISTINCT share.rooms
FROM Shares share
  left join share.rooms.buildingAdditions.buildings.buildingInfoses as bi
... //where clause omitted
ORDER BY share.rooms.floors.floorOrder, share.rooms.roomNumber,
         share.rooms.firstEffectiveAt, share.shareNumber, share.sharePercent

导致以下异常:

Caused by: org.hibernate.exception.SQLGrammarException: ORA-01791: not a SELECTed expression

如果删除DISTINCT关键字,查询将运行没有问题。如果删除order by子句,则查询运行不会出现问题。不幸的是,我似乎无法获得没有重复的有序结果集。


阅读 575

收藏
2020-06-20

共1个答案

一尘不染

您正在尝试使用未计算的列对结果进行排序。如果您不在DISTINCT那里,那将不是问题,但是由于查询基本上只按share.rooms列分组,因此如何将结果集与可以具有相同值的其他列进行排序
share.rooms

2020-06-20