Javadogs,
Ordering should have the same restrictions as for the Select clause. That is, if grouping is used, only expressions in the Grouping clause and aggregate expressions can be in the Ordering clause.
The JDO implementation is not permitted to modify the Select clause, the Grouping clause, or the Ordering clause. These are user-visible and should not be changed by the implementation.
However, the JDO implementation is required to construct valid SQL if the query is being used with a relational datastore. This means that the SQL SELECT might need to have expressions added to the user's Select clause to include expressions in the Grouping and Ordering clauses.
Today in the specification there are restrictions on the expressions that can be used in the Select clause if there is a Grouping clause:
<spec 14.6.10>
Only expressions in the Grouping clause and aggregate expressions can be in the Select clause.
</spec 14.6.10>
A similar restriction is needed for the Ordering clause.
<proposed>
Only expressions in the Grouping clause and aggregate expressions can be in the Ordering clause.
</proposed>
Craig Russell
P.S. A good JDO? O, Gasp!