orderBy и OneToMany-Relation - запрос критериев с помощью jpa 2.0 - PullRequest
0 голосов
/ 13 октября 2011

У меня есть следующая структура ...

Entity A
  - ...
  - Collection<B> c (@OneToMany)

Entity B
  - ...
  - Date d

Я хочу, чтобы queryResult был упорядочен по дате d с помощью оператора orderBy в моем критерииquery.Как мне этого добиться?

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<A> cq = cb.createQuery(A.class);
Root<A> r = cq.from(A.class);
cq.select(r);

// orderBy-Statement -> cq.orderBy(cb.desc(r.get("c.d")).as(Date.class)));
// Error: javax.servlet.ServletException: javax.ejb.EJBException: java.lang.IllegalArgumentException: Unable to resolve attribute [c.d] against path

List<A> l = em.createQuery(cq).getResultList();

Возможно ли иметь порядок в запросе?Если нет, я должен написать метод для упорядочивания моего resultList впоследствии, верно?

Ответы [ 2 ]

0 голосов
/ 07 января 2013

А как насчет этого?

cq.orderBy(cb.desc(r.get("c").get("d")));
0 голосов
/ 17 октября 2011

Ну, в общем, я не смог понять, как использовать OrderBy-Statement, который я хочу. Но теперь я удовлетворен альтернативным подходом (и, на мой взгляд, еще лучше!):

  1. Извлечение необходимых данных из базы данных (неупорядочено)
  2. создание модели данных и использование ее в графическом интерфейсе
  3. выполняет сортировку / упорядочение в модели данных / графическом интерфейсе

Кстати: я использую Primefaces.org-framework. Спасает меня много работы ^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...