Különbség a @Size, @Length és @Column között (hossz = érték)
1. Áttekintés
Ebben a gyors bemutatóban megnézzük a JSR-330-at @Méret, Hibernate's @Hossz és a JPA @Oszlop’S hossz tulajdonság.
Először elpirul, ezek ugyanúgy tűnhetnek, de különböző funkciókat látnak el. Lássuk, hogyan.
2. Eredet
Egyszerűen fogalmazva, ezeknek a kommentároknak a célja a mező méretét közölni.
@Méret és @Hossz hasonlóak. Bármelyiket felhasználhatjuk a mező méretének érvényesítésére. Az első egy Java-szabványos kommentár, a második pedig a hibernált állapotra vonatkozik.
@Oszlopmégis egy JPA kommentár, amelyet a DDL utasítások ellenőrzésére használunk.
Most nézzük át mindegyiket részletesen.
3. @Méret
Az érvényesítéshez felhasználjuk @Méret, egy bab validációs kommentár. Használjuk az ingatlant középső név jelöléssel @Méret hogy érvényesítse értékét az attribútumok között min és max:
public class Felhasználó {// ... @Size (min = 3, max = 15) private String middleName; // ...}
A legfontosabb, @Méret a babot függetlenné teszi a JPA-tól és az olyan szállítóktól, mint a Hibernate. Ennek eredményeként ez sokkal hordozhatóbb, mint @Hossz.
4. @Hossz
És mint az imént kijelentettük, @Hossz a Hibernate-specifikus változata @Méret. Végezzük el a tartomány tartományát vezetéknév felhasználásával @Hossz:
@Entity public class User {// ... @Length (min = 3, max = 15) private String vezetéknév; // ...}
5. @ Oszlop (hossz = érték)
@Oszlopbár egészen más.
Majd használjuk @Oszlop nak nek jelezze a fizikai adatbázis oszlop sajátos jellemzőit. Használjuk a hossz attribútuma @Oszlop kommentár a karakterlánc-értékű oszlop hosszának megadásához:
@Entity public class User {@Column (length = 3) private String keresztnév; // ...}
Következésképpen a kapott oszlop a-ként jön létre VARCHAR (3) és egy hosszabb karakterlánc beszúrása SQL hibát eredményez.
Ne feledje, hogy használni fogjuk @Oszlop csak a táblázat oszlop tulajdonságainak megadásához mivel nem nyújt érvényesítést.
Természetesen, tudjuk használni @Oszlop együtt @Méret az adatbázis oszlop tulajdonságának meghatározása babellenőrzéssel.
@Entity public class User {// ... @Column (length = 5) @Size (min = 3, max = 5) private String city; // ...}
6. Következtetés
Ebben az írásban megismerhettük a @Méret kommentár, @Hossz annotáció és @Oszlop’S hossz tulajdonság. Mindegyiket külön megvizsgáltuk a felhasználásuk területén belül.
Mint mindig, a példák teljes forráskódja elérhető a GitHubon.