Ganz komisches Problem, ich seh nicht den Fehler.
Ich habe eine Relation zwischen zwei Tabellen. In beiden Tabellen ist nur ein Datensatz vorhanden. Bei der Abfrage mit Hibernate erhalte ich trotzdem aus einer Tabelle zwei Reihen, nur das der erste Eintrag 'null' ist.
Plant.hbm.xml
Plant.java
System.hbm.xml
System.java
UnitTest.java
Vielleicht wisst Ihr weiter, ich auf jedenfall nicht und hoffe auf Tipps von euch!
Danke
Ich habe eine Relation zwischen zwei Tabellen. In beiden Tabellen ist nur ein Datensatz vorhanden. Bei der Abfrage mit Hibernate erhalte ich trotzdem aus einer Tabelle zwei Reihen, nur das der erste Eintrag 'null' ist.
Plant.hbm.xml
Code:
<hibernate-mapping>
<class name="cr.dipl.datapool.bean.Plant" table="Plant">
<id name="idPlant" column="idPlant">
<generator class="increment"/>
</id>
<list name="systems" cascade="all">
<key column="Plant_idPlant"/>
<index column="idSystem"/>
<one-to-many class="bean.System"/>
</list>
</class>
</hibernate-mapping>
Plant.java
Code:
public class Plant {
private int idPlant;
private List<System> systems = null;
setter/getter....
}
System.hbm.xml
Code:
<hibernate-mapping>
<class name="bean.System" table="System">
<id name="idSystem" column="idSystem">
<generator class="increment"/>
</id>
<many-to-one name="plant" column="Plant_idPlant" class="bean.Plant" lazy="false"/>
</class>
</hibernate-mapping>
System.java
Code:
public class System {
private int idSystem;
private Plant plant = null;
setter/getter ....
}
UnitTest.java
Code:
initSession();
Plant plant = (Plant) session.load(Plant.class, 1);
List systems = plant.getSystems();
// Size == 2 Warum? Es ist nur ein Datansatz in der Datenbank.
System.out.printf("systems size: %d\n", systems.size());
// Erst der Datensatz ab Index 1 ist gültig
System.out.println( ((bean.System)systems.get(1)).getName());
Vielleicht wisst Ihr weiter, ich auf jedenfall nicht und hoffe auf Tipps von euch!
Danke
Zuletzt bearbeitet: