Bootstrapping Hibernate 5 tavasszal

1. Áttekintés

Ebben a cikkben megvitatjuk, hogyan kell bootstrap Hibernate 5 tavasszal, mind a Java, mind az XML konfigurációt használva.

Ez a cikk a Spring MVC-re összpontosít. A tavaszi indítás hibernált állapotú cikkünkben leírjuk, hogyan lehet a hibernált módot használni a tavaszi indításkor.

2. Tavaszi integráció

Rendszerindítás a SessionFactory a natív Hibernate API-val egy kicsit bonyolult, és jó néhány kódsort igényelne (tekintse meg a hivatalos dokumentációt arra az esetre, ha erre valóban szüksége lenne).

Szerencsére, A tavasz támogatja a bootstrapingot SessionFactoryígy csak néhány sor Java kódra vagy XML konfigurációra van szükségünk.

3. Maven-függőségek

Kezdjük azzal, hogy először hozzáadjuk a szükséges függőségeket pom.xml:

 org.hibernate hibernate-core 5.4.2.Végső 

A spring-orm modul biztosítja a tavaszi integrációt a Hibernate funkcióval:

 org.springframework spring-orm 5.1.6.KÖZLEMÉNY 

Az egyszerűség kedvéért a H2-t fogjuk használni adatbázisunkként:

 com.h2adatbázis h2 1.4.197 

Végül a Tomcat JDBC Connection Pooling-et fogjuk használni, amely jobban megfelel termelési célokra, mint a DriverManagerDataSource a Spring szolgáltatta:

 org.apache.tomcat tomcat-dbcp 9.0.1 

4. Konfiguráció

Mint korábban említettük, Spring támogat minket a Hibernate rendszerindításával SessionFactory.

Csak annyit kell tennünk definiáljon néhány babot és néhány paramétert.

Tavasszal megvan két lehetőség ezekre a konfigurációkra, Java-alapú és XML-alapú módon.

4.1. Java konfiguráció használata

A Hibernate 5 Spring használatával alig változott a Hibernate 4 óta: használnunk kell LocalSessionFactoryBean a csomagból org.springframework.orm.hibernate5 ahelyett org.springframework.orm.hibernate4.

A Hibernate 4-hez hasonlóan itt is meg kell határoznunk a babot LocalSessionFactoryBean, Adatforrás, és PlatformTransactionManager, valamint néhány hibernált állapotra jellemző tulajdonság.

Hozzuk létre a sajátunkat HibernateConfig osztályba konfigurálja a Hibernate 5-et Spring-szel:

@Configuration @EnableTransactionManagement nyilvános osztály HibernateConf {@Bean public LocalSessionFactoryBean sessionFactory () {LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean (); sessionFactory.setDataSource (dataSource ()); sessionFactory.setPackagesToScan ({"com.baeldung.hibernate.bootstrap.model"}); sessionFactory.setHibernateProperties (hibernateProperties ()); return sessionFactory; } @Bean public DataSource dataSource () {BasicDataSource dataSource = új BasicDataSource (); dataSource.setDriverClassName ("org.h2.Driver"); dataSource.setUrl ("jdbc: h2: mem: db; DB_CLOSE_DELAY = -1"); dataSource.setUsername ("sa"); dataSource.setPassword ("sa"); return dataSource; } @Bean public PlatformTransactionManager hibernateTransactionManager () {HibernateTransactionManageractionManager = új HibernateTransactionManager (); tranzakcióManager.setSessionFactory (sessionFactory (). getObject ()); visszatérési tranzakcióManager; } private final Tulajdonságok hibernateProperties () {Properties hibernateProperties = new Properties (); hibernateProperties.setProperty ("hibernate.hbm2ddl.auto", "create-drop"); hibernateProperties.setProperty ("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); return hibernateProperties; }}

4.2. XML konfiguráció használata

Másodlagos lehetőségként azt is megtehetjük konfigurálja a Hibernate 5 funkciót XML-alapú konfigurációval:

        create-drop org.hibernate.dialect.H2Dialect 

Mint könnyen beláthatjuk, pontosan ugyanazokat a babokat és paramétereket definiáljuk, mint korábban a Java-alapú konfigurációban.

Az XML rendszerindítása a Spring kontextusba, használhatunk egyszerű Java konfigurációs fájlt, ha az alkalmazás Java konfigurációval van konfigurálva:

@Configuration @EnableTransactionManagement @ImportResource ({"classpath: hibernate5Configuration.xml"}) public class HibernateXMLConf {//}

Alternatív megoldásként egyszerűen megadhatjuk az XML fájlt a Spring Contextnek, ha a teljes konfiguráció pusztán XML.

5. Használat

Ezen a ponton a Hibernate 5 teljesen konfigurálva van a Spring-szel, és mi megtehetjük fecskendezze be a nyers hibernált állapotot SessionFactory közvetlenül, amikor szükségünk van:

nyilvános absztrakt osztály BarHibernateDAO {@Autowired private SessionFactory sessionFactory; // ...}

6. Támogatott adatbázisok

Sajnos a Hibernate projekt nem pontosan tartalmazza a támogatott adatbázisok hivatalos listáját.

Ezt mondva: könnyen belátható, hogy támogatható-e egy adott adatbázis-típus, megnézhetjük a támogatott nyelvjárások listáját.

7. Következtetés

Ebben a gyors bemutatóban a Hibernate 5-tel konfiguráltuk a Spring-et - Java és XML konfigurációval egyaránt.

Mint mindig, a példák teljes forráskódja elérhető a GitHubon.