ВЫБЕРИТЕ из коллекции с помощью GWT + App Engine + JPA

Можно ли искать объекты, в которых поле коллекции содержит определенное значение?

Например, если у меня есть объект с именем «Элемент», который содержит поле «Коллекция» с именем «Категории».

public class Item {

  @ManyToMany(cascade = CascadeType.ALL)
  private Set<String> categories = new HashSet<String>();

}

Итак, что я хочу сделать, это выбрать каждый элемент, который содержит категорию «синий».

Я пробовал следующие запросы:

ВЫБЕРИТЕ o FROM Item AS o WHERE o.categories = :category

ВЫБРАТЬ o FROM Item AS o WHERE o.categoriesKeys = :category

ВЫБЕРИТЕ o FROM Item AS o WHERE :category MEMBER OF o.categories

Но это не работает.


person Mathew    schedule 20.12.2011    source источник
comment
Это не работает, ничего нам не говорит. Какое исключение вы получаете? Включите его в свой вопрос с трассировкой стека.   -  person Nick Johnson    schedule 21.12.2011
comment
Ваши аннотации неверны. Вы не можете иметь @ManyToMany в поле, хранящем String. Это должно быть отношение, иначе как String может знать об элементе?   -  person DataNucleus    schedule 22.12.2011


Ответы (1)


это то, что вам нужно: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-filtering

person Ashok    schedule 20.12.2011
comment
Зачем ему это нужно? когда он использует GAE и его реализацию JPA, а вы ссылаетесь на какую-то нестандартную функцию какой-то другой реализации JPA. - person DataNucleus; 22.12.2011