Hi John,
If you add the following test to QueryResultTest.java in deltaspike-data-module:
@Test public void should_sort_all_result() { List<Simple>
result = repo.queryAll()
.orderDesc(Simple_.counter)
.orderAsc(Simple_.id) .getResultList(); }
You'll get the following error:
Tests in error:
should_sort_all_result(org.apache.deltaspike.data.impl.QueryResultTest):
org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'e.counter'
[select s from org.apache.deltaspike.data.test.domain.Simple s order by
e.counter DESC,e.id ASC]
This is an overly simplistic case that could be worked around by using 'e' as
an alias in queryAll (instead of 's'), but in more complex case with joins and
order by clauses that use associated entities there's no workaround that I can
see.
I tried (briefly I must confess) to work around this by creating an alternative
QueryBuilderFactory that could then allow me to avoid using
WrappedQueryBuilder, DefaultQueryResult and (ultimately)
OrderByQueryStringPostProcessor but code duplication made the solution rather
ugly, so I gave up and decided to ask.
Cheers,Luigi
On Wednesday, March 30, 2016 12:32 AM, John D. Ament
<[email protected]> wrote:
Luigi,
Do you happen to have a test that can reproduce this?
John
On Tue, Mar 29, 2016 at 5:20 PM Luigi Bitonti <[email protected]>
wrote:
Hi all,
I am having issues with using the orderAsc and orderDesc methods on QueryResult
as the order by clause always ends up having an "e." prepended to its sort-by
properties (e.g "...order by e.i.date_from" instead of "...order by
i.date_from". Is there any way to avoid that from happening?I am using
Deltaspike 1.4.2 but from what I can see in the OrderByQueryStringPostProcessor
source this is still the case in 1.5.4 and also current git master.
Many thanks,Luigi