Predvolené hodnoty stĺpcov v JPA

1. Úvod

V tomto tutoriáli sa pozrieme na predvolené hodnoty stĺpcov v JPA.

Naučíme sa, ako ich nastaviť ako predvolenú vlastnosť v entite aj priamo v definícii tabuľky SQL.

2. Pri vytváraní entity

Prvý spôsob, ako nastaviť predvolenú hodnotu stĺpca, je nastavte ju priamo ako hodnotu vlastnosti entity:

@Entity public class Užívateľ {@Id private Long id; private String firstName = "John Snow"; súkromné ​​celé číslo vek = 25; private Boolean locked = false; }

Teraz, zakaždým, keď vytvoríme entitu pomocou Nový operátor nastaví predvolené hodnoty, ktoré sme poskytli:

@Test void saveUser_shouldSaveWithDefaultFieldValues ​​() {User user = new User (); user = userRepository.save (užívateľ); assertEquals (user.getName (), "John Snow"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

Toto riešenie má jednu nevýhodu. Keď sa pozrieme na definíciu tabuľky SQL, neuvidíme v nej žiadnu predvolenú hodnotu:

vytvoriť užívateľa tabuľky (id bigint nie nulové obmedzenie primárny kľúč user_pkey, meno varchar (255), celé číslo veku, uzamknutý boolean);

Takže ak ich prekonáme nulový, entita sa uloží bez akejkoľvek chyby:

@Test void saveUser_shouldSaveWithNullName () {User user = new User (); user.setName (null); user.setAge (null); user.setLocked (null); user = userRepository.save (užívateľ); assertNull (user.getName ()); assertNull (user.getAge ()); assertNull (user.getLocked ()); }

3. V definícii schémy

Tvoriť predvolená hodnota priamo v definícii tabuľky SQL môžeme použiť @ Stĺpec anotáciu a nastaviť jej stĺpecDefinícia parameter:

@Entity public class User {@Id Long id; @Column (columnDefinition = "varchar (255) predvolený 'John Snow'") súkromný názov reťazca; @Column (columnDefinition = "integer default 25") private Integer age; @Column (columnDefinition = "boolean default false") private Boolean zamknuté; }

Pri použití tejto metódy bude v definícii tabuľky SQL predvolená hodnota:

vytvoriť užívateľa tabuľky (id bigint nie null obmedzenie primárny kľúč user_pkey, meno varchar (255) predvolené 'John Snow', vek celé číslo predvolené 35, uzamknuté boolean predvolené false);

A entita sa správne uloží s predvolenými hodnotami:

@Test void saveUser_shouldSaveWithDefaultSqlValues ​​() {User user = new User (); user = userRepository.save (užívateľ); assertEquals (user.getName (), "John Snow"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

Zapamätaj si to použitím tohto riešenia nebudeme môcť nastaviť daný stĺpec nulovýpri prvom uložení entity. Ak neposkytneme žiadnu hodnotu, predvolená hodnota sa nastaví automaticky.

4. Zhrnutie

V tomto krátkom tutoriáli sme sa naučili, ako nastaviť predvolené hodnoty stĺpcov v JPA.

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


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