Salve, vorrei esporvi un problema che mi cruccia da qualche giorno, sto realizzando per un progetto d’esame un sito con JSP e JPA, il sito simula un negozio online per la vendita di cd. I miei Entity sono : Utente, Artista, CasaDiscografica, Acquisto, CD; da relazioni tra CD e Artista viene creata una tabella che associa queste due tabelle, “composizione”, che associa un Artista ai CD di cui è autore e i CD agli Artisti che lo hanno composto, fin qui tutto ok,dopo vari test però mi sono accorto, con disappunto, che per come viene creato il database è impossibile realizzare un Acquisto in cui compare più volte lo stesso cd, questo perché CD mappa gli acquisti in cui è coinvolto con una Collection<Acquisto > e viceversa Acquisto mappa i CD che vengono acquistati con una Collection<CD>, cosicchè viene creata una JoinTable come “composizione” che ha 2 elementi, uno è la chiave di Acquisto e l’altra la chiave di CD, il problema è che in questo modo se avessi l’ipotetico Acquisto che contiene come cd acquistati 2 CD uguali(oppure 3 e così via) dovrei allora avere due righe della tabella associativa esattamente uguali. Quindi nell’entity CD ho:
@ManyToMany(fetch = FetchType.EAGER)
private Collection<Acquisto> acquistoCollection;
mentre in Acquisto ho:
@ManyToMany(mappedBy = "acquistoCollection", fetch = FetchType.EAGER)
private Collection<CD> cd;
essendo un problema che nella creazione di un sistema come quello che vorrei realizzare esiste sempre sono sicuro che ci sia una soluzione….ma non riesco a trovarla! Grazie per le risposte