Re: orderBY with prefetched table

Andrus Adamchik <[email protected]>
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
Oh, I think I know what this is...

Both your orderings need to be relative to Table1, as that's the query root. So you may rewrite it like this, to create a "path" from Table1 to Table2 to LIBELLE attribute:

   .orderBy(Table1.LIBELLE1.asc())
   .orderBy(Table1.TO_TABLE2.dot(Table2.LIBELLE2).asc())

Andrus


> On Jun 24, 2019, at 2:10 PM, Andrus Adamchik <[email protected]> wrote:
> 
> Actually the original query should work. Calling "query.orderBy(x).orderBy(y)" should keep both orderings. 
> 
>>>    .orderBy(Table1.LIBELLE1.asc())
>>>    .orderBy(Table2.LIBELLE2.asc()) --> dont work
> 
> Any more details what happens if you do that?
> 
> Andrus
> 
> 
>> On Jun 24, 2019, at 12:03 PM, Maxim Petrusevich <[email protected]> wrote:
>> 
>> As I know, Cayenne has ordering which uses list of orderings.
>> 
>> orderBy(Collection<Ordering> orderings)
>> 
>> You should create list with items which will have Ordering type. Something
>> like this:
>> 
>> List<Ordering> orderings = new ArrayList<>();
>> 
>> orderings.add(new Ordering(attribute, sortOrder))
>> ...
>> 
>> // attribute here, is a string which describes your attribute in "cayenne
>> style" (e.g. Table1.SOME_FIELD.getName()) // sort order is a cayenne
>> specified type of ordering: SortOrder.ASCENDING or SorterOrder.DESCENDING,
>> see SortOrder class for details ObjectSelect.query(Table1.class)
>> .prefetch(Table1.TO_TABLE2.joint()) .orderBy(orderings)
>> .select(getObjectContext())
>> 
>> 
>> On Mon, Jun 24, 2019 at 11:48 AM abapseres <[email protected]> wrote:
>> 
>>> Hello,
>>> 
>>> I would like to sort query results with a prefetched table propertie, but
>>> it don't work :
>>> 
>>> 
>>> ObjectSelect.query(Table1.class)
>>>    .prefetch(Table1.TO_TABLE2.joint())
>>>    .orderBy(Table1.LIBELLE1.asc())
>>>    .orderBy(Table2.LIBELLE2.asc()) --> dont work
>>>    .select(getObjectContext())
>>> 
>>> 
>>> Is it possible to do something like that ?
>>> 
>>> Thank you
>>> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.