Ibernazione - Mappature O / R
Finora, abbiamo visto una mappatura O / R di base usando l'ibernazione, ma ci sono tre argomenti di mappatura più importanti, che dobbiamo apprendere in dettaglio.
Questi sono -
- Mappatura delle collezioni,
- Mappatura delle associazioni tra classi di entità e
- Mappature dei componenti.
Mappature delle collezioni
Se un'entità o una classe ha una raccolta di valori per una particolare variabile, allora possiamo mappare quei valori utilizzando una qualsiasi delle interfacce di raccolta disponibili in java. Hibernate può persistere istanze dijava.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.Liste qualsiasi array di entità o valori persistenti.
Sr.No. | Tipo di raccolta e descrizione della mappatura |
---|---|
1 | java.util.Set Questo viene mappato con un elemento <set> e inizializzato con java.util.HashSet |
2 | java.util.SortedSet Questo è mappato con un elemento <set> e inizializzato con java.util.TreeSet. Ilsort l'attributo può essere impostato su un comparatore o su un ordinamento naturale. |
3 | java.util.List Questo è mappato con un elemento <list> e inizializzato con java.util.ArrayList |
4 | java.util.Collection Questo è mappato con un elemento <bag> o <ibag> e inizializzato con java.util.ArrayList |
5 | java.util.Map Questo è mappato con un elemento <map> e inizializzato con java.util.HashMap |
6 | java.util.SortedMap Questo è mappato con un elemento <map> e inizializzato con java.util.TreeMap. Ilsort l'attributo può essere impostato su un comparatore o su un ordinamento naturale. |
Gli array sono supportati da Hibernate con <primitive-array> per i tipi di valore primitivo Java e <array> per tutto il resto. Tuttavia, sono usati raramente, quindi non li discuterò in questo tutorial.
Se vuoi mappare un'interfaccia di raccolta definita dall'utente, che non è direttamente supportata da Hibernate, devi dire a Hibernate della semantica delle tue raccolte personalizzate, che non è molto facile e non è consigliabile utilizzarla.
Mappature delle associazioni
La mappatura delle associazioni tra le classi di entità e le relazioni tra le tabelle è l'anima di ORM. Di seguito sono riportati i quattro modi in cui può essere espressa la cardinalità della relazione tra gli oggetti. Una mappatura di associazione può essere sia unidirezionale che bidirezionale.
Sr.No. | Tipo di mappatura e descrizione |
---|---|
1 | Molti a uno Mappatura della relazione molti-a-uno usando Hibernate |
2 | Uno a uno Mappatura della relazione uno a uno utilizzando Hibernate |
3 | Uno a molti Mappatura della relazione uno-a-molti utilizzando Hibernate |
4 | Molti a molti Mappatura della relazione molti-a-molti utilizzando Hibernate |
Mappature dei componenti
È molto probabile che una classe Entity possa avere un riferimento a un'altra classe come variabile membro. Se la classe riferita non ha un proprio ciclo di vita e dipende completamente dal ciclo di vita della classe di entità proprietaria, allora la classe riferita viene quindi chiamata comeComponent class.
La mappatura della raccolta di componenti è possibile anche in modo simile, proprio come la mappatura delle raccolte regolari con piccole differenze di configurazione. Vedremo queste due mappature in dettaglio con esempi.
Sr.No. | Tipo di mappatura e descrizione |
---|---|
1 | Mappature dei componenti Mappatura per una classe che ha un riferimento a un'altra classe come variabile membro. |