Rozdiel medzi @ veľkosť, @ dĺžka a @ stĺpec (dĺžka = hodnota)

1. Prehľad

V tomto rýchlom výučbe sa pozrieme na JSR-330 @ Veľkosť, Hibernate’s @ Dĺžka a JPA @ Stĺpec‘S dĺžka atribút.

Pri prvom začervenaní tieto sa môžu zdať rovnaké, ale vykonávajú rôzne funkcie. Uvidíme ako.

2. Počiatky

Jednoducho povedané, všetky tieto anotácie sú mienené tak, aby boli oznámiť veľkosť poľa.

@ Veľkosť a @ Dĺžka sú si podobné. Na overenie veľkosti poľa môžeme použiť ktorékoľvek z nich. Prvá je anotácia štandardu Java a druhá je špecifická pre režim dlhodobého spánku.

@ Stĺpec, je to však poznámka JPA, ktorú používame na kontrolu príkazov DDL.

Poďme si teraz podrobne prejsť každú z nich.

3. @ Veľkosť

Na overenie použijeme @ Veľkosť, anotácia fazule. Využime vlastnosť stredné meno s poznámkou @ Veľkosť na overenie jeho hodnoty medzi atribútmi min a max:

public class User {// ... @Size (min = 3, max = 15) private String middleName; // ...}

Čo je najdôležitejšie, @ Veľkosť robí fazuľu nezávislou od JPA a jeho dodávateľov, ako je Hibernate. Vo výsledku je to prenosnejšie ako @ Dĺžka.

4. @ Dĺžka

A ako sme práve uviedli, @ Dĺžka je verzia špecifická pre režim dlhodobého spánku @ Veľkosť. Vynuťme rozsah pre priezvisko použitím @ Dĺžka:

@Entity verejná trieda Používateľ {// ... @Length (min = 3, max = 15) súkromný reťazec priezvisko; // ...}

5. @Column (dĺžka = hodnota)

@ Stĺpecje však úplne odlišný.

Použijeme @ Stĺpec do uveďte špecifické vlastnosti stĺpca fyzickej databázy. Použime dĺžka atribút @ Stĺpec anotácia na určenie dĺžky stĺpca s hodnotou reťazca:

@Entity verejná trieda Používateľ {@Column (dĺžka = 3) súkromný reťazec firstName; // ...}

Následne by sa výsledný stĺpec vygeneroval ako a VARCHAR (3) a pokus vložiť dlhší reťazec by mal za následok chybu SQL.

Všimnite si, že použijeme @ Stĺpec iba na určenie vlastností stĺpca tabuľky pretože neposkytuje validácie.

Samozrejme, môžeme použiť @ Stĺpec spolu s @ Veľkosť určiť vlastnosť stĺpca databázy s validáciou fazule.

@Entity verejná trieda Používateľ {// ... @Column (dĺžka = 5) @Size (min = 3, max = 5) súkromné ​​mesto reťazca; // ...}

6. Záver

V tomto písaní sme sa dozvedeli o rozdieloch medzi @ Veľkosť anotácia, @ Dĺžka anotácia a @ Stĺpec‘S dĺžka atribút. Každý z nich sme skúmali osobitne v rámci oblastí ich použitia.

Celý zdrojový kód príkladov je ako vždy k dispozícii na serveri GitHub.


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