Tavaszi csizma hibernált állapotban

1. Áttekintés

Ebben a cikkben megnézzük, hogyan kell használni a tavaszi csomagtartót hibernált állapotban.

Készítünk egy egyszerű Spring Boot alkalmazást, és megnézzük, milyen egyszerű integrálni a hibernált állapotba.

2. Az alkalmazás indítása

A Spring Initializr programot a Spring Boot alkalmazás indításához fogjuk használni. Ebben a példában csak a szükséges konfigurációkat és függőségeket fogjuk használni a hibernálás integrálásához, hozzáadva Web, JPA, és H2 függőségek. Ezeket a függőségeket a következő részben ismertetjük.

Generáljuk a projektet, és nyissuk meg az IDE-nkben. Ellenőrizhetjük a létrehozott projekt felépítését és meghatározhatjuk a szükséges konfigurációs fájlokat.

Így fog kinézni a projekt szerkezete:

3. Maven-függőségek

Ha megnyílunk pom.xml, meglátjuk, hogy van tavasz-boot-starter-web és tavasz-csomagtartó-indító-teszt mint maven függőségek. Ahogy a nevük is sugallja, ezek a Spring Boot kezdő függőségei.

Vessünk egy gyors pillantást a JPA-t behálózó függőségre:

 org.springframework.boot spring-boot-starter-data-jpa 

Ez a függőség magában foglalja a JPA API-t, a JPA implementációt, a JDBC-t és más szükséges könyvtárakat. Mivel a JPA alapértelmezett megvalósítása a Hibernate, ez a függőség valójában elegendő annak behozatalához is.

Végül felhasználjuk H2 nagyon könnyű adatbázisként ehhez a példához:

 com.h2database h2 futásidejű 

A H2 konzol segítségével ellenőrizhetjük, hogy a DB működik-e, és egy felhasználóbarát grafikus felhasználói felületet is használunk az adatbevitelhez. Menjünk előre, és engedélyezzük alkalmazás.properites:

spring.h2.console.enabled = true

Mindössze annyit kellett beállítanunk, hogy a Hibernate és a H2 is szerepeljen a példánkban. A tavaszi indítás alkalmazás indításakor ellenőrizhetjük, hogy a konfiguráció sikeres volt-e a naplókban:

HHH000412: Hibernált mag {#Version}

HHH000206: hibernálás. A tulajdonságok nem találhatók

HCANN000001: Hibernate Commons kommentárok {#Version}

HHH000400: A dialektus használata: org.hibernate.dialect.H2Dialect

Most már elérhetjük a H2 konzolt a localhoston: // localhost: 8080 / h2-console /.

4. Az entitás létrehozása

Annak ellenőrzésére, hogy a H2 megfelelően működik-e, először létrehozunk egy JPA entitást egy újban modellek mappa:

@Entity public class Book {@Id @GeneratedValue private Long id; privát karakterlánc neve; // szabványos kivitelezők // szabványos szerelők és beállítók}

Van egy alapvető entitásunk, amelyből a H2 táblázatot készíthet. Indítsa újra az alkalmazást és ellenőrizze a H2 konzolt, egy új táblát Könyv létrejön.

Néhány kezdeti adat hozzáadásához alkalmazásunkhoz létre kell hoznunk egy új SQL fájlt, néhány beszúrási utasítással, és be kell tennünk a mi fájlunkba erőforrások mappába. Tudjuk használni import.sql (Hibernált támogatás) vagy adatok.sql (Tavaszi JDBC támogatás) fájlok az adatok betöltéséhez.

Íme a példánkra vonatkozó adatok:

beszúrás könyv szerinti értékekbe (1, „A tatár sztyeppe”); beszúrás könyvértékekbe (2, „Verscsík”); beszúrás könyv szerinti értékekbe (3, „Nyugtalan éjszakák: Dino Buzzati válogatott történetei”);

Ismét újraindíthatjuk a Spring Boot alkalmazást, és ellenőrizhetjük a H2 konzolt - az adatok most a Könyv asztal.

5. A tár és a szolgáltatás létrehozása

Folytatjuk az alapkomponensek létrehozását az alkalmazás tesztelése érdekében. Először vegyük fel a JPA-tárházat egy újba adattárak mappa:

@Repository nyilvános felület A BookRepository kiterjeszti a JpaRepository-t {}

Használhatjuk a JpaRepository interfész a Spring framework-től, amely alapértelmezett megvalósítást biztosít az basic számára CRUD tevékenységek.

Ezután tegyük hozzá a BookService egy új szolgáltatások mappa:

@Service public class BookService {@Autowired private BookRepository bookRepository; public List list () {return bookRepository.findAll (); }}

Alkalmazásunk teszteléséhez ellenőriznünk kell, hogy a létrehozott adatok lehívhatók-e a lista() a szolgáltatás módja.

A következőket fogjuk írni SpringBootTest:

@RunWith (SpringRunner.class) @SpringBootTest nyilvános osztály BookServiceUnitTest {@Autowired private BookService bookService; @Test public void whenApplicationStarts_thenHibernateCreatesInitialRecords () {List books = bookService.list (); Assert.assertEquals (könyvek.méret (), 3); }}

A teszt futtatásával ellenőrizhetjük, hogy a Hibernate létrehozta-e a Könyv adatokat, amelyeket szolgáltatásunk ezután sikeresen lekér. Ennyi volt, a Hibernate fut a Spring Boot-tal.

6. Nagybetűs táblázat neve

Előfordulhat, hogy az adatbázisunkban szereplő táblák nevét nagybetűvel kell megírnunk. Mint már tudjuk, A hibernálás alapértelmezés szerint a táblák nevét kisbetűvel generálja.

Megpróbálhatnánk kifejezetten megadni a táblázat nevét, így:

@Entity (name = "FOGLALÁS") public class Book {// tagok, szokásos getterek és beállítók}

Ez azonban nem működne. Ami működik, az beállítja ezt a tulajdonságot alkalmazás.tulajdonságok:

spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

Ennek eredményeként ellenőrizhetjük az adatbázisunkban, hogy a táblázatok sikeresen készültek-e nagybetűvel.

7. Következtetés

Ebben a cikkben megvizsgáltuk, milyen egyszerű a hibernálás integrálása a Spring Boot-ba. A H2 adatbázist nagyon könnyű memória-megoldásként használtuk.

Teljes példát adtunk egy olyan alkalmazásra, amely mindezeket a technológiákat használja, és végül egy kis tippet is adtunk arra, hogyan állítsuk be nagybetűvel az asztalunk nevét az adatbázisunkban.

Mint mindig, a cikkben említett összes kódrészlet megtalálható a GitHub-adattárunkban.