JPA @ Grundlæggende kommentar

1. Oversigt

I denne hurtige vejledning udforsker vi JPA @Grundlæggende kommentar. Vi diskuterer også forskellen mellem @Grundlæggende og @Kolonne JPA-kommentarer.

2. Grundlæggende typer

JPA understøtter forskellige Java-datatyper som vedvarende felter i en enhed, ofte kendt som basistyperne.

En grundlæggende type kortlægges direkte til en kolonne i databasen. Disse inkluderer Java primitiver og deres indpakningsklasser, Snor, java.math.BigInteger og java.math.BigDecimal, forskellige tilgængelige dato-klasser, enums og enhver anden type, der implementeres java.io.Serialiserbar.

Dvaletilstand, som enhver anden ORM-leverandør, opretholder et register af grundlæggende typer og bruger det til at løse en søjles specifikke org.hibernate.type.Type.

3. @Grundlæggende Kommentar

Vi kan bruge @Grundlæggende kommentar for at markere en grundlæggende egenskab:

@Entity offentlig klassekursus {@Basic @Id privat int id; @ Grundlæggende privat strengnavn; ...}

Med andre ord, det @Grundlæggende kommentar på et felt eller en ejendom betyder, at det er en grundlæggende type, og Dvaletilstand skal bruge standardkortlægningen for at være vedholdende.

Bemærk, at det er en valgfri kommentar. Og så kan vi omskrive vores Rute enhed som:

@Entity offentlig klassekursus {@Id privat int id; privat strengnavn; ...}

Når vi ikke specificerer @Grundlæggende annotation for en grundlæggende typeattribut antages det implicit, og standardværdierne for denne kommentar gælder.

4. Hvorfor bruge @Grundlæggende Kommentar?

Det @Grundlæggende annotering har to attributter, valgfri og hente. Lad os se nærmere på hver enkelt.

Det valgfri attribut er en boolsk parameter, der definerer, om det markerede felt eller egenskab tillader det nul. Det er som standard rigtigt. Så hvis feltet ikke er en primitiv type, antages den underliggende kolonne at være ugyldig som standard.

Det hente attribut accepterer et medlem af optællingen Hent, hvilken angiver, om det markerede felt eller den markerede ejendom skal indlæses dovenligt eller ivrigt hentes. Det er som standard FetchType.EAGER, men vi kan tillade doven indlæsning ved at indstille den til FetchType.LAZY.

Lazy loading giver kun mening, når vi har en stor Serialiserbar objekt kortlagt som en grundlæggende type, som i så fald kan omkostningerne til feltadgang være betydelige.

Vi har en detaljeret tutorial, der dækker ivrig / doven indlæsning i dvale, der tager et dybere dykke ind i emnet.

Lad os sige, at du ikke vil tillade det nul for vores Rute'S navn og ønsker også at lade den ejendom dovent. Derefter definerer vi vores Rute enhed som:

@Entity offentlig klassekursus {@Id privat int id; @Grundlæggende (valgfri = falsk, hent = FetchType.LAZY) privat strengnavn; ...}

Vi skal udtrykkeligt bruge @Grundlæggende kommentar, når de er villige til at afvige fra standardværdierne for valgfri og henteparametre. Vi kan specificere en eller begge af disse attributter afhængigt af vores behov.

5. JPA @Grundlæggende vs. @Kolonne

Lad os se på forskellene mellem @Grundlæggende og @Kolonne kommentarer:

  • Egenskaber for @Grundlæggende annotering anvendes på JPA-enheder, mens attributterne for @Kolonne anvendes på databasekolonnerne
  • @Grundlæggende annoteringer valgfri attribut definerer, om enhedsfeltet kan være nul eller ikke; på den anden side, @Kolonne annoteringer ugyldig attribut angiver, om den tilsvarende databasekolonne kan være nul
  • Vi kan bruge @Grundlæggende for at angive, at et felt skal læsses
  • Det @Kolonne kommentar giver os mulighed for at specificere navn af den kortlagte databasekolonne

6. Konklusion

I denne artikel lærte vi, hvornår og hvordan man bruger JPA'er @Grundlæggende kommentar. Vi talte også om, hvordan det adskiller sig fra @Kolonne kommentar.

Som sædvanligt er kodeeksempler tilgængelige på Github.


$config[zx-auto] not found$config[zx-overlay] not found