Mapping strategies - Mapping collections and entity associations - Sets, bags, lists, and maps of value types

5 belangrijke vragen over Mapping strategies - Mapping collections and entity associations - Sets, bags, lists, and maps of value types

Hoe map je in de code concreet een Set ?

@Entity
public class Item {
// . . .
A
@ElementCollection
B
@CollectionTable(
name = "IMAGE",
joinColumns = @JoinColumn(name = "ITEM_ID"))
@Column(name = "FILENAME")

private Set<String> images = new HashSet<>()

De JPA-annotatie @ElementCollection in de bovenstaande lijst is vereist voor een verzameling van elementen met een waardetype. Zonder de annotaties @CollectionTable en @Column zou Hibernate standaardschemanamen gebruiken.

Hoe wordt de primaire sleutel van een collectietabel van een set gekozen ?

De IMAGE-tabel heeft een samengestelde primaire sleutel bestaande uit zowel de kolommen ITEM_ID als FILENAME. Dat betekent dat we geen duplicaatrijen kunnen hebben: elk afbeeldingsbestand kan slechts eenmaal aan één item worden gekoppeld. Ook wordt de volgorde van afbeeldingen niet opgeslagen.

Hoe wordt de primaire sleutel bepaald in een elementcollectie tabel dmv een bag ?

Door een surrogaatsleutel de rijen zijn uniek en in willekeurige volgorde (volgorde van ingave)
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Wat is de primaire sleutel van een List elmentcollection tabel ?


De IMAGES_ORDER index samen met de filename
de OrderColumn gemaakte index wordt verwacht doorlopend te zijn . Dit heeft als gevolg dat wanneer een rij wordt verwijderd of ingevoegd de volgende rijen één per één worden bijgewerkt

Geef een voorbeeld van hoe je een sorted set kan coderen

@Entity
public class Item {
// . . .
@ElementCollection
@CollectionTable(name = "IMAGE")
@Column(name = "FILENAME")
@org.hibernate.annotations.SortNatural
private SortedSet<String> images = new TreeSet< >()

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo