2011-07-25 15 views
1

私は、投影法の基準を使用してデータベースから2列を抽出しています。しかし、1つの要素リストではなく、単純な要素の2つのリストとして結果を得たいと思います。ハイバネート基準の投影リストの結果

私の基準:

最終DetachedCriteriaを基準= DetachedCriteria.forClass(Valeur.class、 "値") .add(Restrictions.eq( "value.parametre.id"、parameterId)) (..より多くの制限...) criteria.setProjection(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; 

、私はデータのリストを持っているが、私は二つのリストが欲しい:ダブルの一つと日付の他に。これは可能ですか?何か案が ?

ありがとうございました。 ヴァネッサ

答えて

0

あなたがリターンリストを持っていたら、2つのリストに手動で出力することができます:あなたの答えのための

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]); 
    } 
} 
+0

おかげで多くのことを。しかし、私はHibernateでこれを直接行うことができるのだろうかと私はまだ疑問を抱いています。なぜなら、私はたくさんのデータ(各列に50,000行近く)で作業していて、 "for"ループを避けたいからです。 ご協力いただきありがとうございます。 vanessa – Pennylane

+0

JavaDoc(http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/Criteria.html#setResultTransformer(org.hibernate.transform.ResultTransformer))に基づいて、指定されたCriteriaクエリに対して1つの 'ResultTransformer'を設定することしかできませんので、答えはnoです。 – atrain

+0

ご協力いただきありがとうございます。私はあなたのソリューションを使用します。良い一日を過ごしてください。バネッサ – Pennylane

関連する問題