Many-to-many anomala

10 views
Skip to first unread message

alexenter

unread,
Feb 20, 2012, 9:13:32 AM2/20/12
to NHibernate-It
Ciao a tutti
ho questa situazione:

solitamente per creare una relazione m-to-m si crea una tabella che
contiene gli id delle due tabelle da collegare.
Nel mio caso la tabella di join ha un terzo campo da valorizzare
quando si crea la relazione quindi ho:

Tabella A (quindi creo un entità A)
Id_A

Tabella B (quindi creo un entità B)
Id_B

Tabella A_B (nell'entità A ho un relazione di tipo bag che espone un
List<B>)
Id_A
Id_B
Value

Con Nh tramite un mapping tipo Bag riuscivo a creare senza problemi le
relazioni "normali", non riesco invece a capire in che modo poter
inserire il value nel momeno della creazione della relazione.

Avete mai affrontato una situazione del genere? L'unica cosa che mi
viene in mente è creare una ulteriore entità A_B che espose un metodo
Insert.

Grazie in anticipo per le eventuali risposte
Alex

Carmine Paternoster

unread,
Feb 20, 2012, 9:45:54 AM2/20/12
to nh...@googlegroups.com
Fai attenzione nella progettazione a questo punto perchè secondo me la tabella A_B probabilmente è un entità a se stante, quindi una classe vera e propria. Conferma di quel che ti dico lo potrai trovare alla slide 31 del file corrispondente al link che ti incollo qui di seguito.

--
Per mandare un messaggio a questo gruppo, invia una email a nh...@googlegroups.com
 Per annullare l'iscrizione a questo gruppo, invia un'email a nh-it-un...@googlegroups.com
 Per maggiori opzioni, visita questo gruppo all'indirizzo http://groups.google.com/group/nh-it?hl=it

alexenter

unread,
Feb 20, 2012, 12:17:32 PM2/20/12
to NHibernate-It
Ciao Carmine

grazie dell'indicazione.
Si la slide che mi indichi effettivamente indica che nel mio caso
dovrei creare un'entità A_B con delle relazioni one-to-many nelle
chiavi esterne.

Di fatto era la soluzione che conoscevo (o che avrei adottato) ma mi
chiedevo se fosse possibile gestire la cosa evitando di creare una
ulteriore entità che di fatto "non esiste"..

Se altri sono a conoscenza di eventuali soluzioni per favore
postate..

Grazie mille..
Alex

On 20 Feb, 15:45, Carmine Paternoster <carmine...@gmail.com> wrote:
> Fai attenzione nella progettazione a questo punto perchè secondo me la
> tabella A_B probabilmente è un entità a se stante, quindi una classe vera e
> propria. Conferma di quel che ti dico lo potrai trovare alla slide 31 del
> file corrispondente al link che ti incollo qui di seguito.
>
> http://www.unirc.it/documentazione/materiale_didattico/599_2010_265_9...
>
> Il giorno 20 febbraio 2012 15:13, alexenter <a.napolet...@alexenter.it> ha

Marcello Esposito

unread,
Feb 21, 2012, 2:10:21 AM2/21/12
to NHibernate-It
Ciao Alex.

Sono d'accordo con Carmine. Se la relazione ha degli attributi è di
per sé un'entità e vuole una classe che la modelli. La classe si
chiama classe associativa e, in UML, appare come nella figura
seguente:

http://t2.gstatic.com/images?q=tbn:ANd9GcSLTPyKDfGbcmghs83jKdPMMMLeB37dUeNumsKpwNURaAhyUoc_wA

Un altro esempio potrebbe essere la classe Carrello e la classe
Prodotto legate da relazione molti-a-molti mediante classe associativa
Acquisto che contiene l'attributo Quantita: float.

Questo tipo di associazioni possono essere realizzate mediante 2
associazioni: molti-ad-uno<-->uno-a-molti.

Un saluto,
Marcello.
Reply all
Reply to author
Forward
0 new messages