Salve a tutti, sto cercando di scrivere un programma per la gestione di un magazzino, e attualmente mi sto preoccupando della rappresentazione del database usando Hibernate (con EntityManager, quindi JPA).

Questa e' una parte del mio database, in cui si vede la relazione tra articolo e fattura tramite una tabella di join che però contiene anche la quantità e il prezzo al momento dell inserimento.



Ora con Hibernate mi trovo in difficoltà per mappare quesatarelazione, subito ho pensato di mantenere le 3 entità (Articolo, Articolo-Fattura, Fattura) ma in questo modo diventa abbastanza scomodo accedere ai dati (e' come se si lavorasse direttamente sulle tabelle, senza nessuna astrazione)

Qualcuno saprebbe suggerirmi un approccio migliore?

Poi ho un altro dubbio, che non sono riuscito a togliermi leggendo la dovumentazione.
Ho notato che hibernate supporta il meccanismo di "cascata" delle modifiche/eliminazione nelle relazioni.

ad esempio: @OneToMany(cascade=CascadeType.ALL)

però nel database avevo gia inserito a livello di sql questi comportamenti, e non mi e' chiaro quindi se devo toglierli dal database o semplicemente utilizzare l'annotazione per informare hibernate della loro presenza.

Avevo molti altri dubbi, ma al momento non mi ricordo...

Grazie per aver letto, e spero in una risposta che mi illumini