PDA

View Full Version : [SOLVED]mapping hibernate


ste89
29-08-2014, 11:18
Salve a tutti
Sto realizzando un applicazione java per un progetto dell'universita'. Per la gestione della persistenza dei dati sto utilizzando il framework hibernate.
Sto incontrando un solo problema che non sto riuscendo a risolvere e riguarda il mapping di una relazione molti a molti. Mi spiego meglio ho una relazione:

COMPETIZIONE(1,N)------>OFFRE<--------(1,N)OPTIONAL

Quando creo una nuova competizione inserisco anche gli optional annessi alla competione, poi salvo con il comando session.save(competizione) il problema che non effettua il mapping con gli optional esistenti ma mi crea un nuovo optional e non riesco a risolvere questo fatto
allego i file di mapping che ho realizzato
Competione.hnm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Server.Competizioni">

<class name="Competizione" table="competizioni">

<id name="id" column="id_competizione">
<generator class="native"/>
</id>
<property name="data" type="timestamp" column="data_inizio"/>
<property name="numMinPartecipanti"/>
<property name="numMaxPartecipanti"/>
<property name="prezzo"/>

<!-- Relazioni uno a molti competizione -> Manager-->
<many-to-one name="manager" class="Server.Utenti.Manager" fetch="select">
<column name="id_manager" not-null="true" />
</many-to-one>
<!-- Relazione uno a molti competizione -> Gara -->
<many-to-one name="tipo" class="Gara" fetch="select" lazy="false">
<column name="id_gara" not-null="true" />
</many-to-one>
<!-- Relazione molti a molti Competizione -> Offre <-Optional -->
<set name="optional" table="offre" inverse="false" lazy="false" fetch="select" cascade="all">
<key column="id_competizione"/>
<many-to-many column="id_optional" class="Server.Competizioni.Optional" />
</set>
<!-- Relazione molti a molti Competizione -> Partecipa <- Partecipante-->
<set name="partecipanti" table="partecipa" cascade="all" lazy="false">
<key column="id_competizione" not-null="true" />
<many-to-many column="id_partecipante" class="Server.Utenti.Partecipante"/>
</set>
</class>
</hibernate-mapping>


Optional.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Server.Competizioni">

<class name="Optional" table="optional">

<id name="id" column="id_optional">
<generator class="native"/>
</id>
<property name="titolo" />
<property name="descrizione" />
<property name="prezzo"/>

<set name="competizione" table="offre" inverse="true" lazy="true" fetch="select">
<key column="id_competizione"/>
<many-to-many column="id_optional" class="Server.Competizioni.Optional"/>
</set>
</class>
</hibernate-mapping>


qualcuno saprebbe dirmi dove sbaglio? perche' non so' piu' dove sbattere la testa
Grazie in anticipo Ciao

ste89
29-08-2014, 11:29
Come non detto ho risolto mi scuso per il post.
Se qualcuno dovesse avere il mio stesso problemma, io ho risolto cambiando il generator class di optional in assigned