Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Hibernate & Struts] Visualizzare Tabella Collegata

    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?

  2. #2
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    stesso problema. hai risolto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.