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.