Hi Leute,
folgendes Mapping:
habe ein Interessantes Problem mit einer JSF App die Spring(2.5) und Hibernate(3.3) einsetzt.
Mittels Hibernate wird ein Objektgraph aufgebaut, dieser ist soweit Konsistent, es können Entities persistiert und wieder geladen werden. Das Problem taucht auf, wenn ich in einer Eltern-Kind Beziehung, bei der die Kindelemente in einer Liste des Elternobjektes liegen, ein neues Kindelement hinzufüge. Das Elternobjekt wird geladen und kann korrekt auf der Oberfläche (JSF 1.2, ICEFaces 1.7.1, SpringOSIV-Filter) ausgegeben werden. In der Action-MEthode sind die Listen jedoch immer leer, d.h. das neue Kindelement ist nach der Action-Methode immer das einzige Objekt in der Liste egal wieviele Kindelemente das Objekt eigentlich hat, im darauffolgenden View wird also auch nur ein Element angezeigt.
Ein neuer Request sorgt dann dafür dass wieder alles stimmt, aber ich mnöchte nach dem Hinzufügen eben immer den richtigen Stand anzeigen können. Lazy-Loading auf false zu setzen bewirkt nichts, ich vermute es handelt sich um ein PRoblem mit Konversationen.
Hat jemand eine Idee?
folgendes Mapping:
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 package="myPackage" auto-import="true">
<class name="Standort" table="STANDORT" >
<id name="id" type="long" column="`ID`">
<generator class="native" />
</id>
<!-- other props omitted -->
<list name="technischeEinheiten" cascade="save-update" lazy="false">
<key column="STANDORT_ID" not-null="true"/>
<list-index column="TE_INDEX" />
<one-to-many class="TechnischeEinheit" />
</list>
</class>
</hibernate-mapping>
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="myPackage" auto-import="true">
<class name="TechnischeEinheit" table="TECHNISCHE_EINHEIT">
<id name="id" type="long" column="ID">
<generator class="native" />
</id>
<!-- back ref to parent for navigatability -->
<many-to-one name="standort" class="Standort" column="STANDORT_ID" not-null="true" insert="false" update="false" lazy="false" />
<!-- other properties omitted -->
</class>
</hibernate-mapping>
habe ein Interessantes Problem mit einer JSF App die Spring(2.5) und Hibernate(3.3) einsetzt.
Mittels Hibernate wird ein Objektgraph aufgebaut, dieser ist soweit Konsistent, es können Entities persistiert und wieder geladen werden. Das Problem taucht auf, wenn ich in einer Eltern-Kind Beziehung, bei der die Kindelemente in einer Liste des Elternobjektes liegen, ein neues Kindelement hinzufüge. Das Elternobjekt wird geladen und kann korrekt auf der Oberfläche (JSF 1.2, ICEFaces 1.7.1, SpringOSIV-Filter) ausgegeben werden. In der Action-MEthode sind die Listen jedoch immer leer, d.h. das neue Kindelement ist nach der Action-Methode immer das einzige Objekt in der Liste egal wieviele Kindelemente das Objekt eigentlich hat, im darauffolgenden View wird also auch nur ein Element angezeigt.
Ein neuer Request sorgt dann dafür dass wieder alles stimmt, aber ich mnöchte nach dem Hinzufügen eben immer den richtigen Stand anzeigen können. Lazy-Loading auf false zu setzen bewirkt nichts, ich vermute es handelt sich um ein PRoblem mit Konversationen.
Hat jemand eine Idee?