Получение количества объектов в Hibernate Criteria Query для отображения в JSF - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть некоторые объекты Hibernate, которые я хочу сгруппировать по paramType и отобразить тип параметра.Вот метод controller.getAnalyticsCount():

public List<Analytic> getAnalyticCount() {
    Criteria criteria = currentSession().createCriteria(Analytic.class);
    return criteria.setProjection( Projections.projectionList()
                                       .add( Projections.rowCount())
                                       .add( Projections.groupProperty("paramType")).list();
}

Теперь, при отображении в JSF, работает следующее, но печатает каждый объект:

<ui:repeat var="foo" value="#{controller.getAnalyticsCount()}">
    #{foo}
</ui:repeat>

Как распечатать фактические значения?Разве мне не доступны другие поля сгруппированного по объекту?Я также пробовал .add( Projections.rowCount(),'counts') и # {foo.counts} `.Документация представляется очень легкой в ​​этом отношении.

PS: На самом деле, тип возвращаемого значения, возможно, является причиной, но что именно является типом возврата в этом случае, он больше не являетсятипа List<Analytic> Я думаю.

1 Ответ

1 голос
/ 01 ноября 2011

Этот запрос критерия не будет возвращать экземпляры Analytic. Он вернет список Object[]. Каждый Object[] в списке содержит 2 элемента:

  1. число, как целое или длинное (оно недавно изменилось. Я приводил число и спрашиваю, чтобы его значение int было безопасным.
  2. paramType

Конечно, вы должны создать список экземпляров bean-компонентов из этого списка Object [] и использовать эти bean-компоненты в своем представлении.

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