休止状態で次のことが達成できるかどうか疑問に思っています。次の DTO を考慮します。
public class ClassDTO {
private String className;
private List<String> studentNames;
//getters & setters
}
および sql-query を含む次の hbm ファイル:
<hibernate-mapping>
<class name="app.ClassDTO">
<id name="className" type="java.lang.String" />
<property name="studentNames" type="java.lang.List" />
</class>
<sql-query name="classQuery">
<return alias="class" class="app.ClassDTO" />
select classTable.CLASS_NAME AS {class.className}, ST.STUDENT_NAME
from CLASS classTable
join STUDENT ST on ST.CLASS_ID=classTable.CLASS_ID
where ST.age<18
</sql-query>
</hibernate-mapping>
データベースでクエリを実行すると、次の結果が得られます。
+----------+------------+
|CLASS_NAME|STUDENT_NAME|
+----------+------------+
| CS106 | BILL |
| CS106 | GEORGE |
| CS106 | MICHEL |
| ELEC8 | WILL |
| ELEC8 | MIKE |
| ELEC8 | BETTY |
+----------+------------+
休止状態でクエリを実行すると、ClassDTO オブジェクトのリストを取得することになっています。しかし、次の方法でそれらのオブジェクトを初期化することは可能ですか?
List<ClassDTO> result = getHibernateTemplate.findByNamedQuery("classQuery").;
resul.size(); //<-- the list size should be 2 (one entry for CS106 and another for ELEC8)
result.get(0).getStudentNames().size(); //<-- the size should be 3 for BILL, GEORGE and MICHEL who are linked to the class CS106
休止状態のドキュメントを検索しましたが、まだ答えを見つけることができませんでした。どんな助けも本当に感謝しています。よろしくお願いします。