2016-08-16 6 views
0

Я новичок в Backendless. Я хочу создать настраиваемое событие для агрегирования некоторых данных. Я смог найти только один пример для Custom Event.Непрерывное пользовательское событие для агрегации данных

Конечная цель - получить самый последний обзор для каждой книги автора.

У меня есть три таблицы: авторы, книги и обзоры.

Является ли это правильный подход с использованием Java:

@BackendlessEvent("Reviews") 
public class ReviewsEventHandler extends com.backendless.servercode.extension.CustomEventHandler 
{ 

    @Async 
    @Override 
    public Map handleEvent(RunnerContext context, Map eventArgs) 
    { 
    // find reviews based on author 
    StringBuilder whereClause = new StringBuilder(); 
    whereClause.append("Reviews.Books.Authors.Name = eventArgs"); 

    // sort newest update on top 
    QueryOptions queryOptions = new QueryOptions(); 
    queryOptions.addSortByOption("updateded DESC"); 

    BackendlessDataQuery dataQuery = new BackendlessDataQuery(); 
    dataQuery.setQueryOptions(queryOptions); 
    dataQuery.setWhereClause(whereClause.toString()); 

    List<Reviews> reviews = Backendless.Persistence.of(Reviews.class).find(dataQuery).getCurrentPage();   

    return Reviews.emptyMap(); 
    } 

} 
+0

Я обновляю вопрос –

ответ

0

Ваш "WhereClause" не имеет смысла. Вы в конечном итоге, это и не будет ничего делать - приведут к «недействительным WhereClause» ошибка:

Authors[Books] Authors.Name = {result of toString() from eventArgs} 
+0

С пользовательским обработчиком, то, что я использую для хранения коллекции? получить весь связанный объект? –

+0

Чтобы «хранить коллекцию» чего? Где? Извините, я не понял ваш вопрос. –

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

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