Как отфильтровать результаты GWT requestFactory?

У меня есть вопрос о том, как выполнять фильтрацию данных с помощью RequestFactory в GWT. В настоящее время я работаю над приложением, которое поддерживается базой данных MySQL. Мой уровень сохранения основан на JPA/Hibernate. Я использую RequestFactory для запроса моей базы данных для всех моих операций, связанных со списком.

Так, например, у меня есть объект Person: в моем PersonRequestContext у меня есть метод, который позволяет мне перечислять людей. Сигнатура метода:

Request<List<PersonProxy>> listPersons(Integer firstResult, Integer maxResults);

Как вы уже догадались, соответствующий запрос выглядит примерно так:

entityManager.createQuery("SELECT p FROM Person p ORDER BY p.id").setFirstResult(firstResult).setMaxResults(maxResults).getResultList();

Теперь я хочу отфильтровать результат на основе столбцов таблицы. Поэтому я хотел использовать какую-то абстракцию класса Filter для ее решения. Проблема в том, что, как мы все знаем, невозможно передать непримитивные объекты в метод requestFactory.

Вы когда-нибудь испытывали подобное? И как вы с ним справились, чтобы решить проблему?


person kaffein    schedule 27.07.2011    source источник


Ответы (1)


Ваше утверждение о том, что в метод Request можно передавать только примитивные типы, неверно. См. документацию по переносимым типам. Вы можете создать ValueProxy иерархию для моделирования фильтров.

person BobV    schedule 27.07.2011
comment
О, я вижу, я был совершенно неправ. Большое спасибо, что поправили меня. Я попытаюсь решить это с помощью вашего предложения ... еще раз большое спасибо, - person kaffein; 28.07.2011
comment
Итак, вот что я пытался сделать: я создал объект (скажем, A) на стороне сервера и AProxy, который расширяет ValueProxy на стороне клиента. Я просто хочу Отправить пару значений на стороне сервера (это кажется таким простым, и я, вероятно, глуп). просто заполните поле AProxy и отправьте его на сервер... Как я могу создать объект AProxy на стороне клиента? И как я могу аннотировать RequestContext с помощью @service, учитывая тот факт, что он не будет иметь никаких функций, связанных с обслуживанием (я имею в виду отсутствие запросов к базе данных или подобных stg для достижения)? большое спасибо - person kaffein; 29.07.2011