Alapértelmezett oszlopértékek a JPA-ban

1. Bemutatkozás

Ebben az oktatóanyagban megvizsgáljuk a JPA alapértelmezett oszlopértékeit.

Megtanuljuk, hogyan kell őket beállítani alapértelmezett tulajdonságként az entitásban, valamint közvetlenül az SQL tábla meghatározásában.

2. Entitás létrehozása közben

Az alapértelmezett oszlopérték beállításának első módja a állítsa be közvetlenül entitás tulajdonságértékként:

@Entity public class User {@Id private Long id; privát karakterlánc keresztnév = "John Snow"; magán egész életkor = 25; privát logikai zárolt = hamis; }

Most minden alkalommal létrehozunk egy entitást a új operátor beállítja az általunk megadott alapértelmezett értékeket:

@Test void saveUser_shouldSaveWithDefaultFieldValues ​​() {User user = new User (); user = userRepository.save (felhasználó); assertEquals (user.getName (), "John Snow"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

Ennek a megoldásnak egyetlen hátránya van. Ha megnézzük az SQL tábla definícióját, nem látunk benne alapértelmezett értéket:

tábla felhasználó létrehozása (id bigint nem null kényszer user_pkey elsődleges kulcs, név varchar (255), kor egész szám, zárolt logikai érték);

Így, ha felülírjuk őket nulla, az entitás hiba nélkül mentésre kerül:

@Test void saveUser_shouldSaveWithNullName () {Felhasználó felhasználó = új Felhasználó (); user.setName (null); user.setAge (null); user.setLocked (null); user = userRepository.save (felhasználó); assertNull (user.getName ()); assertNull (user.getAge ()); assertNull (user.getLocked ()); }

3. A Séma definícióban

Készíteni alapértelmezett érték közvetlenül az SQL tábla meghatározásában használhatjuk a @Oszlop annotációt és állítsa be azt oszlopDefiníció paraméter:

@Entity public class User {@Id Long id; @Column (columnDefinition = "varchar (255) alapértelmezett 'John Snow'") privát karakterlánc neve; @ Oszlop (columnDefinition = "egész alapértelmezett 25") privát Egész kor; @Column (columnDefinition = "logikai érték alapértelmezett hamis") privát logikai érték zárolva; }

Ezzel a módszerrel az alapértelmezett érték jelen lesz az SQL tábla meghatározásában:

tábla felhasználó létrehozása (id bigint nem null kényszer user_pkey elsődleges kulcs, név varchar (255) alapértelmezett 'John Snow', egész életkor alapértelmezett 35, lezárt logikai alapértelmezett hamis);

És az entitás megfelelően el lesz mentve az alapértelmezett értékekkel:

@Test void saveUser_shouldSaveWithDefaultSqlValues ​​() {Felhasználó felhasználó = új Felhasználó (); user = userRepository.save (felhasználó); assertEquals (user.getName (), "John Snow"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

Emlékezz arra ennek a megoldásnak a használatával nem tudjuk beállítani az adott oszlopot nullaaz entitás első mentésekor. Ha nem adunk meg értéket, akkor az alapértelmezett értéket automatikusan beállítjuk.

4. Összefoglalás

Ebben a rövid bemutatóban megtanultuk, hogyan állítsunk be alapértelmezett oszlopértékeket a JPA-ban.

Mint mindig, a teljes forráskód elérhető a GitHubon.


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