Cascade Type

di il
1 risposte

Cascade Type

Ciao a tutti. Come potete immaginare, sono più che un neofita...
C'è qualcuno che mi può spiegare a cosa serve il cascade type? Nella teoria l'ho capito, ma... nell'uso pratico non riesco a orientarmi. Esempi pratici di quando è bene usare un cascadetype.All e quando invece non è bene usarlo?
Grazie tanto!

1 Risposte

  • Re: Cascade Type

    Ciao

    Premetto che "cascade" l'ho sempre sentito come termine legato ai database, per cui il fatto di avere un post sotto Java mi fa pensare ad un ORM (tipo Hibernate o cose di questo tipo).

    Se è questo, in generale serve per definire come si devono comportare le entità (di norma tabelle del DB) nel momento in cui un elemento di una tabella ad essa associata viene modificato/cancellato.

    Per esempio il CascadeType.All può tornare comodo nell'associazione fra una persona e i suoi contatti email (ne puoi avere più di uno, magari quello di casa, quello di lavoro, la pec, ...).

    In questo caso, se cancelli una persona, gli indirizzi email da soli perdono di significato. Allo stesso modo può tornar scomodo dover prima cancellare tutti gli indirizzi email per poter cancellare la persona. Meglio istruire il sistema per dire che quando cancelli la persona, si cancellino in automatico tutti i suoi indirizzi email.

    Questo ragionamento raramente si sposa nella relazione fra cliente e fatture. Se ci sono delle fatture intestate ad un cliente, difficilmente si vuole che cancellando il cliente si cancellino tutte le fatture. Pertanto in questo caso meglio usare qualcosa di diverso dal CascadeType.All e fare in modo che se si prova a cancellare un cliente che ha delle fatture, il sistema scateni un'eccezione

    Spero siano esempi chiari
Devi accedere o registrarti per scrivere nel forum
1 risposte