JPA @Basic Annotation

1. Áttekintés

Ebben a gyors bemutatóban felfedezzük a JPA-t @Alapvető annotáció. Megbeszéljük a különbséget is @Alapvető és @Oszlop JPA-jelölések.

2. Alaptípusok

A JPA különféle Java adattípusokat támogat egy entitás tartós mezőként, amelyeket gyakran alaptípusnak neveznek.

Egy alaptípus közvetlenül az adatbázis oszlopához térképez. Ide tartoznak a Java primitívek és azok burkoló osztályai, Húr, java.math.BigInteger és java.math.BigDecimal, különféle elérhető dátum-idő osztályok, felsorolások és bármilyen más megvalósítható típus java.io.Serializálható.

A hibernálás, mint bármely más ORM-gyártó, az alaptípusok nyilvántartását tartja fenn, és az oszlop specifikus megoldására használja. org.hibernate.type.Type.

3. @Alapvető Megjegyzés

Használhatjuk a @Alapvető kommentár az alaptípus tulajdonságának megjelölésére:

@Entity nyilvános osztály tanfolyam {@Basic @Id private int id; @Basic private String név; ...}

Más szavakkal, a @Alapvető A mezők vagy tulajdonságok megjegyzése azt jelzi, hogy ez egy alaptípus, és a hibernált állapotnak a szokásos leképezést kell használnia a megmaradásához.

Vegye figyelembe, hogy ez opcionális kommentár. És így átírhatjuk Tanfolyam entitás mint:

@Entity public class Course {@Id private int id; privát karakterlánc neve; ...}

Amikor nem adjuk meg a @Alapvető implicit módon feltételezi az alaptípus attribútum megjegyzését, és ennek a jegyzetnek az alapértelmezett értékei érvényesek.

4. Miért kell használni @Alapvető Megjegyzés?

A @Alapvető az annotációnak két attribútuma van, választható és elhozni. Vizsgáljuk meg közelebbről mindegyiket.

A választható attribútum a logikai paraméter, amely meghatározza, hogy a megjelölt mező vagy tulajdonság lehetővé teszi-e nulla. Alapértelmezés szerint igaz. Tehát, ha a mező nem primitív típus, akkor az alapul szolgáló oszlopot feltételezzük semmissé tehető alapértelmezés szerint.

A elhozni attribútum elfogadja a felsorolás egyik tagját Fetch, melyik meghatározza, hogy a megjelölt mezőt vagy tulajdonságot lustán be kell-e tölteni, vagy lelkesen be kell-e tölteni. Alapértelmezés szerint FetchType.EAGER, de megengedhetjük a lusta betöltést úgy, hogy beállítjuk FetchType.LAZY.

A lusta rakodásnak csak akkor lesz értelme, ha van egy nagy Sorosítható alaptípusként leképezett objektum, mivel ebben az esetben a terepi hozzáférés költsége jelentős lehet.

Van egy részletes bemutatónk, amely az Eger / Lazy hibernált állapotban történő betöltéséről szól, és mélyebben belemerül a témába.

Tegyük fel, hogy nem akarjuk megengedni nullák a mi Tanfolyam’S név és lustán meg akarja tölteni azt az ingatlant is. Majd meghatározzuk a sajátunkat Tanfolyam entitás mint:

@Entity public class tanfolyam {@Id private int id; @Basic (opcionális = false, fetch = FetchType.LAZY) privát karakterlánc neve; ...}

Kifejezetten használnunk kell a @Alapvető megjegyzés, ha hajlandó eltérni az alapértelmezett értékektől választható és elhozniparaméterek. Igényeink függvényében megadhatjuk az egyik vagy mindkét tulajdonságot.

5. JPA @Alapvető vs. @Oszlop

Nézzük meg a különbségeket @Alapvető és @Oszlop kommentárok:

  • A @Alapvető jelölést alkalmaznak a JPA entitásokra, míg a @Oszlop kerülnek alkalmazásra az adatbázis oszlopain
  • @Alapvető annotáció választható attribútum határozza meg, hogy az entitás mező lehet-e nulla vagy nem; másrészről, @Oszlop annotáció semmissé tehető attribútum határozza meg, hogy a megfelelő adatbázis oszlop lehet-e nulla
  • Tudjuk használni @Alapvető jelezni, hogy egy mezőt lustán kell betölteni
  • A @Oszlop annotáció lehetővé teszi számunkra a név a leképezett adatbázis oszlop

6. Következtetés

Ebben a cikkben megtudtuk, hogy mikor és hogyan kell használni a JPA-kat @Alapvető annotáció. Beszéltünk arról is, hogy miben különbözik a @Oszlop annotáció.

Szokás szerint a kódpéldák elérhetők a Githubon.