компонент -->
--> feature 1
--> feature 2
--> feature 3
компонентът има връзка едно към много с функцията
Въпреки че има 3 различни записа в таблицата с функции, критериите за хибернация извличат само последния запис и го показват 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