Ciao ragazzi,
ho un problema. Non riesco a visualizzare con struts il contenuto di una tabella collegata ad un altra.
Mi spiego meglio postando il codice ( tipica situazione master/detail ):

Tabella Movimenti:

Codice PHP:
<?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>
    <class name="com.nota.beans.Movimenti" table="movimenti" schema="public">
        <id name="id" type="int">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <many-to-one name="tipiMovimento" class="com.nota.beans.TipiMovimento" fetch="select">
            <column name="id_tipo_movimento" not-null="true" />
        </many-to-one>
        <many-to-one name="soggetti" class="com.nota.beans.Soggetti" fetch="select">
            <column name="id_soggetto" />
        </many-to-one>
        <property name="numero" type="string">
            <column name="numero" length="20" />
        </property>
        <property name="data" type="string">
            <column name="data" length="10" not-null="true" />
        </property>
        <property name="aggPianoDeiConti" type="string">
            <column name="agg_piano_dei_conti" length="1" />
        </property>
        <property name="annoRif" type="int">
            <column name="anno_rif" not-null="true" />
        </property>
        <property name="descrizione" type="string">
            <column name="descrizione" length="100" />
        </property>
        <property name="progressivoUnivoco" type="string">
            <column name="progressivo_univoco" length="50" />
        </property>
        <property name="progressivo" type="java.lang.Integer">
            <column name="progressivo" />
        </property>
        <set name="dettaglioMovimentis" inverse="true">
            <key>
                <column name="id_movimento" not-null="true" />
            </key>
            <one-to-many class="com.nota.beans.DettaglioMovimenti" />
        </set>
    </class>
</hibernate-mapping>
Tabella Dettaglio Movimenti:

Codice PHP:
<?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>
    <class name="com.nota.beans.DettaglioMovimenti" table="dettaglio_movimenti" schema="public">
        <id name="id" type="int">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <many-to-one name="movimenti" class="com.nota.beans.Movimenti" fetch="select">
            <column name="id_movimento" not-null="true" />
        </many-to-one>
        <property name="dataAggiornamento" type="timestamp">
            <column name="data_aggiornamento" length="29" not-null="true" />
        </property>
        <property name="codiceSottoconto" type="string">
            <column name="codice_sottoconto" length="10" not-null="true" />
        </property>
        <property name="dare" type="double">
            <column name="dare" precision="17" scale="17" not-null="true" />
        </property>
        <property name="avere" type="double">
            <column name="avere" precision="17" scale="17" not-null="true" />
        </property>
        <property name="progressivoDettaglio" type="int">
            <column name="progressivo_dettaglio" not-null="true" />
        </property>
        <property name="annoRif" type="string">
            <column name="anno_rif" length="4" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
Ecco la jsp dove visualizzo i movimenti:

Codice PHP:
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ 
taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ 
taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

    <
table class="griglia">
    <
tr>
        <
th width="1"></th>
        <
th width="10%">ProgUniv.</th>
        <
th width="1">Prog.</th>
        <
th width="10%">Data</th>
        <
th>Descrizione</th>
        <
th width="1">PC</th>
    </
tr>
    <
logic:iterate id="movimenti" name="listaMovimenti" indexId="indice">
    <
tr>
        <
td><html:image src="images/m.gif"/></td>
        <
td><bean:write name="movimenti" property="progressivoUnivoco"/></td>
        <
td><bean:write name="movimenti" property="progressivo"/></td>
        <
td><bean:write name="movimenti" property="data"/></td>
        <
td><bean:write name="movimenti" property="descrizione"/></td>
        <
td><bean:write name="movimenti" property="aggPianoDeiConti"/></td>
    </
tr>
    </
logic:iterate>
    </
table
Come posso visualizzare il dettaglio dei movimenti tramite struts?

listaMovimenti viene generata in questo modo:

Codice PHP:
public static List<MovimentilistaTuttiMovimenti() {
        List<
Movimentiresult=null;

        
Session session HibernateUtil.getSessionFactory().openSession();
        
Transaction tx null;
        try {
            
tx session.beginTransaction();
            
Query q session.createQuery(" from Movimenti");
            
result=q.list();
            
tx.commit();
        }
        catch (
HibernateException he) {
            if (
tx!=null)
                
tx.rollback();
            throw 
he;
        }
        finally {
            
session.close();
        }
        return 
result;
    } 
Ho però già notato in debug che "movimenti" ( inteso come oggetto usato nella jsp ) non ha al suo interno il dettaglio movimenti per ogni record.
E tra l'altro quando provo a ricavare il dettaglio movimento per ogni movimento ottengo un errore del tipo:

Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.nota.beans.Movimenti.dettaglioMovimentis, no session or session was closed

Provo a ricavarlo così:

<logic:notEmpty name="movimenti" property="dettaglioMovimentis">
<bean:write name="movimenti" property="dettaglioMovimentis.annoRif" />,
</logic:notEmpty>



Come mai?