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.