2015-08-02 3 views
1

мне нужно запросить объекты, имеющие одинаковые свойства, например:Java GAE: Могу ли я фильтровать, сравнивая свойства объектов?

class Relation { 
    Integer a; 
    Integer b; 
} 

Query q = pm.newQuery(Relation.class); 
q.setFilter("a == b"); 

Этот запрос возвращает пустой список, и я не нашел способ выполнить эту задачу.

+0

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

ответ

0

Глядя в the documentation для хранилища данных запросов, это ясно говорится, что:

The property value must be supplied by the application; it cannot refer to or be calculated in terms of other properties.

Так что вы пытаетесь сделать, это невозможно.

Одна вещь, которую вы могли бы сделать это:

1- добавить третье свойство вашей организации (например логическое значение называется «равно»).

2- Когда вы обновляете свою сущность, вы проверяете, есть ли == b.

3 Вы обновить «равно» согласно проверке, проведенной 2.

4- Для запроса, вы посмотрите, где равно == верно.