2015-09-14 3 views
4

С SugarORM, я понимаю, в отношениях я могу сделать этоSugarOrm: OrderBy связанные таблицы

public class Book extends SugarRecord<Book> { 
    String name; 
    String ISBN; 
    String title; 
    String shortSummary; 

    // defining a relationship 
    Author author; 
} 

Как же я могу сделать находку на Book.class таким образом, что я могу заказать по авторам.

Я попытался

Book.find(Book.class, null, null, null, "author.id desc",null);; 

и

Book.find(Book.class, null, null, null, "author desc",null);; 

и все эти не будут работать

ответ

3

Мое предложение состоит в том, что вы используете сахар ORM Custom Query Builder, которые могут быть вызваны использованием этой

Book.executeQuery("VACUUM"); 

Или вы можете также использовать метод findWithQuery со следующим синтаксисом

List<Note> notes = Note.findWithQuery(Note.class, "SELECT * FROM Book 
             ORDER BY author DESC", null); 
6

Для простого запроса рекомендуется использовать the query builder approach, например:

Select.from(Book.class) 
.orderBy("ISBN") 
.list(); 

В любом случае помните, что SugarORM основан на SQLite и в вашем конкретном случае вы пытаетесь заказать отношения. Затем вы должны создать пользовательский запрос с соединением, а заказ - по полю таблицы Author (id, имя, фамилия и т. Д.) В зависимости от вашей цели.

+0

может установить порядок по убыванию и по возрастанию с использованием метода по умолчанию? –

+0

фактически поддерживает метод ASC по умолчанию, и, похоже, нет способа выбрать между ASC и DESC. Если вам нужно DESC, вы должны использовать необработанный запрос –

+5

@SoriaGustavo. Если вы хотите указать asc/desc, просто поместите его в orderBy, например. 'orderBy (" ISBN desc ")'. – JakeSteam

 Смежные вопросы

  • Нет связанных вопросов^_^