B
berny76
Gast
Hallo,
ich möchte gerne aus java heraus über hibernate eine collection in eine mysql-db speichern. Dabei soll die Reihenfolge der eingefügten Objekte eingehalten werden. Ich finde keinen Weg. Habe auch schon stundenlang recherchiert und die hibernatedoku gelesen.
Konkret sieht der Fall so aus: Ich habe 2 POJOs Ticket und Category. Jedes Ticket hat eine oder viele Kategorien. Jede Kategorie hat 0 oder viele Tickets. Also eine n:m Beziehung. Die Beziehung habe ich auch schon lauffähig bekommen. Allerdings mit einem Set. Da aber bei einem Set nicht die Einfügereihenfolge berücksicht wird, möchte ich auf eine list wechseln; bekomme das Mapping aber nicht realisiert.
Der alte code mit einem Set:
Die hbm.xml files dazu:
Wäre schön, wenn mir dabei einer helfen könnte.
ich möchte gerne aus java heraus über hibernate eine collection in eine mysql-db speichern. Dabei soll die Reihenfolge der eingefügten Objekte eingehalten werden. Ich finde keinen Weg. Habe auch schon stundenlang recherchiert und die hibernatedoku gelesen.
Konkret sieht der Fall so aus: Ich habe 2 POJOs Ticket und Category. Jedes Ticket hat eine oder viele Kategorien. Jede Kategorie hat 0 oder viele Tickets. Also eine n:m Beziehung. Die Beziehung habe ich auch schon lauffähig bekommen. Allerdings mit einem Set. Da aber bei einem Set nicht die Einfügereihenfolge berücksicht wird, möchte ich auf eine list wechseln; bekomme das Mapping aber nicht realisiert.
Der alte code mit einem Set:
Code:
package ticketkasse.model;
import java.util.HashSet;
import java.util.Set;
public class Ticket {
private int id;
private String name;
...
private Set<Category> categories = new HashSet<Category>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Category> getCategories() {
return categories;
}
public void setCategories(Set<Category> category) {
this.categories = category;
}
}
package ticketkasse.model;
import java.util.HashSet;
import java.util.Set;
public class Category {
private int id;
private String name;
private Set<Ticket> tickets = new HashSet<Ticket>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Ticket> getTickets() {
return tickets;
}
public void setTickets(Set<Ticket> tickets) {
this.tickets = tickets;
}
}
Die hbm.xml files dazu:
Code:
<hibernate-mapping>
<class name="ticketkasse.model.Ticket" table="TICKET">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="java.lang.String" not-null="true"/>
...
<set name="categories" table="TICKET_CATEGORY" lazy="false">
<key column="ID_TICKET"/>
<many-to-many class="ticketkasse.model.Category" column="ID_CATEGORY"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="ticketkasse.model.Category" table="CATEGORY">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="java.lang.String" not-null="true" />
<set name="tickets" table="TICKET_CATEGORY" lazy="false">
<key column="ID_CATEGORY"/>
<many-to-many class="ticketkasse.model.Ticket" column="ID_TICKET"/>
</set>
</class>
</hibernate-mapping>
Wäre schön, wenn mir dabei einer helfen könnte.