Результат для списка проекций с критериями гибернации

Я использую критерии с прогнозами для извлечения 2 столбцов из моей базы данных. Однако я хотел бы получить результат в виде 2 списков простых элементов вместо 1 списка элементов.

Мои критерии:

окончательные критерии DetachedCriteria = DetachedCriteria.forClass(Valeur.class, "значение") .add(Restrictions.eq("value.parametre.id", parameterId)) (... дополнительные ограничения...) критерии.setProjection(Projections. отдельные( Projections.projectionList() .add( Projections.property( "value.valeurVal" )) .add( Projections.property( "measure.mesureDate" ) ) ) );

    criteria.addOrder( Order.asc("measure.mesureDate") );

final List<Data> result =  (List<Data>)  criteria.getExecutableCriteria(_sessionFactory.getCurrentSession()).list();

Мой объект данных:

private double _value;
@NotNull
private Date _date;

В этом случае у меня есть список данных, но я хочу иметь ДВА списка: один из двойных, а другой из даты. Это возможно ? Любая идея ?

Спасибо большое за вашу помощь. Ванесса


person Pennylane    schedule 25.07.2011    source источник


Ответы (1)


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

List<String> stringList = new ArrayList<String>();
List<Integer> integerList = new ArrayList<Integer>();
results = criteria.list();
if(results != null) {
    for (Object[] row : results) {
        stringList.add((String)row[0]);
        integerList.add((Integer)row[1]);
    }
}
person atrain    schedule 02.08.2011
comment
Большое спасибо за ваш ответ. Но мне все еще интересно, можно ли сделать это напрямую с помощью Hibernate, потому что я работаю с большим количеством данных (почти 50 000 строк для каждого столбца), и я бы предпочел избежать цикла. Спасибо за вашу помощь. Ванесса - person Pennylane; 02.08.2011
comment
На основе JavaDoc (docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/), похоже, что вы можете установить только один ResultTransformer для заданного запроса Criteria, поэтому кажется, что ответ - нет . - person atrain; 02.08.2011
comment
Большое спасибо за помощь, воспользуюсь вашим решением. Хорошего дня. Ванесса - person Pennylane; 23.08.2011