JPA @Grunnleg merknad

1. Oversikt

I denne raske opplæringen vil vi utforske JPA @Basic kommentar. Vi vil også diskutere forskjellen mellom @Basic og @Kolonne JPA-merknader.

2. Grunnleggende typer

JPA støtter forskjellige Java-datatyper som vedvarende felt i en enhet, ofte kjent som basistypene.

En grunnleggende type tilordnes direkte til en kolonne i databasen. Disse inkluderer Java primitiver og deres wrapper klasser, String, java.math.BigInteger og java.math.BigDecimal, forskjellige tilgjengelige klokkeslett for klokkeslett, enums og andre typer implementeringer java.io Serialiserbar.

Dvalemodus, som alle andre ORM-leverandører, opprettholder et register med grunnleggende typer og bruker det til å løse en kolonnes spesifikke org.hibernate.type.Type.

3. @Basic Kommentar

Vi kan bruke @Basic kommentar for å merke en grunnleggende typeegenskap:

@Entity public class Course {@Basic @Id privat int id; @Grunnleggende privat strengnavn; ...}

Med andre ord, de @Basic merknad på et felt eller en eiendom betyr at det er en grunnleggende type, og dvalemodus bør bruke standardkartleggingen for å være vedvarende.

Merk at det er en valgfri kommentar. Og så kan vi skrive om vårt Kurs enhet som:

@Entity public class Course {@Id privat int id; privat strengnavn; ...}

Når vi ikke spesifiserer @Basic merknad for en grunnleggende typeattributt, antas det implisitt, og standardverdiene for denne merknaden gjelder.

4. Hvorfor bruke @Basic Kommentar?

De @Basic kommentar har to attributter, valgfri og hente. La oss se nærmere på hver enkelt.

De valgfri attributt er en boolsk parameter som definerer om det merkede feltet eller egenskapen tillater det null. Det er som standard ekte. Så hvis feltet ikke er en primitiv type, antas den underliggende kolonnen å være ugyldig som standard.

De hente attributt godtar et medlem av oppregningen Hent, hvilken angir om det merkede feltet eller egenskapen skal lastes lat eller hentes ivrig. Det er som standard FetchType.EAGER, men vi kan tillate lat lasting ved å sette den til FetchType.LAZY.

Lat belastning vil bare være fornuftig når vi har en stor Serialiserbar objekt kartlagt som en grunnleggende type, som i så fall kan kostnadene for feltadgang være betydelig.

Vi har en detaljert veiledning som dekker ivrig / lat belastning i dvalemodus som tar et dypere dykk inn i emnet.

La oss si ikke vil tillate det null for vår Kurs‘S Navn og vil laste den eiendommen også. Deretter vil vi definere våre Kurs enhet som:

@Entity public class Course {@Id privat int id; @Basic (valgfritt = false, fetch = FetchType.LAZY) privat strengnavn; ...}

Vi bør eksplisitt bruke @Basic kommentar når du er villig til å avvike fra standardverdiene for valgfri og henteparametere. Vi kan spesifisere en eller begge av disse attributtene, avhengig av våre behov.

5. JPA @Basic vs. @Kolonne

La oss se på forskjellene mellom @Basic og @Kolonne kommentarer:

  • Attributter til @Basic merknader brukes på JPA-enheter, mens attributtene til @Kolonne brukes på databasekolonnene
  • @Basic merknader valgfri attributt definerer om enhetsfeltet kan være null eller ikke; på den andre siden, @Kolonne merknader ugyldig attributt spesifiserer om den tilsvarende databasekolonnen kan være null
  • Vi kan bruke @Basic for å indikere at et felt skal lastes lat
  • De @Kolonne kommentar lar oss spesifisere Navn av den tilordnede databasekolonnen

6. Konklusjon

I denne artikkelen lærte vi når og hvordan du bruker JPA-er @Basic kommentar. Vi snakket også om hvordan det skiller seg fra @Kolonne kommentar.

Som vanlig er kodeeksempler tilgjengelig på Github.


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