OK zuerst mal mein Tabellenmapping:
Data.hbm.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="muh.model.Data"
table="Table_Data"
dynamic-update="true"
>
<id
name="id"
column="data_ID"
type="java.lang.Integer"
>
<generator class="identity">
</generator>
</id>
<bag
name="conditions"
table="Table_Data_Condition"
lazy="false"
cascade="all-delete-orphan"
order-by="d_Condition_ID asc"
>
<key
column="d_Condition_ID"
>
</key>
<many-to-many
class="muh.model.Condition"
column="condition_ID"
outer-join="auto"
/>
</bag>
</class>
</hibernate-mapping>
und hier die dazugehörige
Data.java
Quote:
public class Data implements Serializable
{
Integer id;
List conditions;
/**
* @hibernate.id column = "data_ID" generator-class = "identity"
*/
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public List getConditions()
{
return conditions;
}
public void setConditions(List conditions2)
{
this.conditions = conditions2;
}
}
Die 'Conditions' müssen in einer java.util.List sein. Allerdings kann ich die Conditions nicht direkt als 'List' mappen, weil noch andere Tools auf die Datenbank zugreifen und mir dann immer die von Hibernate benötigte Index-Spalte mit 'nulls' kaputtmachen.
Das Problem mit dem 'bag' ist, dass Elemente doppelt auftreten dürfen.
Sorgt da Hibernate für, dass Elemente nicht doppelt auftreten, oder kann mir das wirklich passieren?