Forskellen mellem @ størrelse, @ længde og @ kolonne (længde = værdi)

1. Oversigt

I denne hurtige vejledning ser vi på JSR-330´s @Størrelse, Dvale @Længde og JPA @Kolonne'S længde attribut.

Ved første rødme, disse kan virke ens, men de udfører forskellige funktioner. Lad os se hvordan.

2. Oprindelse

Kort sagt, alle disse kommentarer er beregnet til kommunikere størrelsen på et felt.

@Størrelse og @Længde er ens. Vi kan bruge enten til at validere størrelsen på et felt. Den første er en Java-standardkommentar, og den anden er specifik for dvale.

@Kolonneer dog en JPA-kommentar, som vi bruger til at kontrollere DDL-udsagn.

Lad os nu gå igennem hver af dem i detaljer.

3. @Størrelse

For valideringer bruger vi @Størrelse, en anmærkning om validering af bønner. Lad os bruge ejendommen mellemnavn kommenteret med @Størrelse for at validere dens værdi mellem attributterne min og max:

offentlig klasse bruger {// ... @Size (min = 3, max = 15) privat String mellemnavn; // ...}

Mest vigtigt, @Størrelse gør bønnen uafhængig af JPA og dens leverandører såsom Hibernate. Som et resultat er dette mere bærbart end @Længde.

4. @Længde

Og som vi lige sagde, @Længde er den dvale-specifikke version af @Størrelse. Lad os håndhæve rækkevidden for efternavn ved brug af @Længde:

@Entity public class User {// ... @Length (min = 3, max = 15) private String efternavn; // ...}

5. @Kolonne (længde = værdi)

@Kolonneer dog ganske anderledes.

Vi bruger @Kolonne til angive specifikke egenskaber ved den fysiske databasesøjle. Lad os bruge længde attribut for @Kolonne kommentar for at specificere strengværdieret kolonnelængde:

@Entity offentlig klasse bruger {@Column (længde = 3) privat streng fornavn; // ...}

Derfor vil den resulterende kolonne blive genereret som en VARCHAR (3) og forsøg på at indsætte en længere streng vil resultere i en SQL-fejl.

Bemærk, at vi bruger @Kolonne kun for at specificere tabelkolonneegenskaber da det ikke giver valideringer.

Selvfølgelig, vi kan bruge @Kolonne sammen med @Størrelse for at angive databasekolonnejendom med bønnevalidering.

@Entity public class User {// ... @Column (length = 5) @Size (min = 3, max = 5) private String city; // ...}

6. Konklusion

I denne opskrivning lærte vi om forskellene mellem @Størrelse kommentar, @Længde kommentar og @Kolonne'S længde attribut. Vi undersøgte hver især inden for anvendelsesområderne.

Som altid er den fulde kildekode for eksemplerne tilgængelig på GitHub.


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