компонент -->
--> feature 1
--> feature 2
--> feature 3
компонент имеет отношение один ко многим с функцией
Несмотря на то, что в таблице функций есть 3 разные записи, hibernate Criteria извлекает только последнюю запись и отображает ее 3 раза.
Я даю свой файл hbm, а также код критериев.
Запрос из таблицы компонентов в порядке, но проблема только с таблицей функций.
component.hbm.xml
<class name="com.arv.RelationMapping.component" table="component" >
<id name="componentPK" column="component_pk" type="java.lang.Long"/>
<property name="componentName" column="component_name" type="java.lang.String"/>
<set name="feature" table="feature" inverse="true">
<key>
<column name="component_pk"/>
</key>
<one-to-many class="com.arv.RelationMapping.feature" />
</set>
</class>
features.hbm.xml
<class name="com.arv.RelationMapping.feature" table="feature">
<id name="featurePK" column="feature_pk" type="java.lang.Long"/>
<many-to-one name="component" class="com.arv.RelationMapping.component" fetch="select">
<column name="component_pk"/>
</many-to-one>
<property name='scenarioId' column="scenario_id" type="java.lang.String"/>
<property name='scenarioDesc' column="scenario_desc" type="java.lang.String"/>
<property name='testCaseFile' column="test_case_file" type="java.lang.String"/>
</class>
Класс Java
открытый класс Тест {
public static void main(String[] args)
{
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(feature.class);
List summaryList = criteria.list();
feature feature = new feature();
System.out.println(summaryList.size()); // getting size correctly
if(summaryList !=null)
{
for(Object obj:summaryList)
{
feature = (feature)obj;
// getting same values for each loop
System.out.println(feature.getScenarioDesc());
System.out.println(feature.getScenarioId());
System.out.println(feature.getFeaturePK());
}
}
session.close();
}
}
SCENARIO_PK
? - person Jonathan Rowny   schedule 04.04.2012