Bootstrapping Hibernate 5 s pružinou

1. Prehľad

V tomto článku si povieme, ako na to bootstrap Hibernate 5 s pružinoupomocou konfigurácie Java aj XML.

Tento článok sa zameriava na jarné MVC. Náš článok Spring Boot with Hibernate popisuje, ako používať režim Hibernate v Spring Boot.

2. Jarná integrácia

Bootstrapping a SessionFactory s natívnym rozhraním Hibernate API je trochu komplikované a trvalo by nám pár riadkov kódu (pozrite si oficiálnu dokumentáciu, ak to naozaj potrebujete urobiť).

Našťastie Pružina podporuje bootstrapping SessionFactorytakže potrebujeme iba niekoľko riadkov kódu Java alebo konfigurácie XML.

3. Závislosti Maven

Začnime najskôr pridaním potrebných závislostí do našej pom.xml:

 org.hibernate hibernate-core 5.4.2.Final 

Pružinový modul poskytuje integráciu pružiny s režimom dlhodobého spánku:

 org.springframework spring-orm 5.1.6.RELEASE 

Kvôli jednoduchosti použijeme ako našu databázu H2:

 com.h2database h2 1.4.197 

Nakoniec použijeme Tomcat JDBC Connection Pooling, ktorý sa na produkčné účely hodí lepšie ako DriverManagerDataSource poskytuje jar:

 org.apache.tomcat tomcat-dbcp 9.0.1 

4. Konfigurácia

Ako už bolo spomenuté, Spring nás podporuje bootstrapovaním režimu dlhodobého spánku SessionFactory.

Všetko, čo musíme urobiť, je definovať niektoré fazule, ako aj niekoľko parametrov.

S jarou máme dve možnosti pre tieto konfiguráciespôsobom založeným na prostredí Java a XML.

4.1. Pomocou konfigurácie Java

Pokiaľ ide o používanie režimu dlhodobého spánku 5 s jarom, od režimu dlhodobého spánku 4 sa toho zmenilo len málo: musíme použiť LocalSessionFactoryBean z balíka org.springframework.orm.hibernate5 namiesto org.springframework.orm.hibernate4.

Rovnako ako v prípade Hibernate 4, aj tu musíme definovať fazuľu pre LocalSessionFactoryBean, Dátový zdroja PlatformTransactionManager, ako aj niektoré špecifické vlastnosti režimu dlhodobého spánku.

Poďme vytvoriť naše HibernateConfig trieda do nakonfigurujte režim dlhodobého spánku s pružinou:

@Configuration @EnableTransactionManagement verejná trieda HibernateConf {@Bean public LocalSessionFactoryBean sessionFactory () {LocalSessionFactoryBean sessionFactory = nový LocalSessionFactoryBean (); sessionFactory.setDataSource (dataSource ()); sessionFactory.setPackagesToScan ({"com.baeldung.hibernate.bootstrap.model"}); sessionFactory.setHibernateProperties (hibernateProperties ()); návrat sessionFactory; } @Bean public DataSource dataSource () {BasicDataSource dataSource = nový BasicDataSource (); dataSource.setDriverClassName ("org.h2.Driver"); dataSource.setUrl ("jdbc: h2: mem: db; DB_CLOSE_DELAY = -1"); dataSource.setUsername ("sa"); dataSource.setPassword ("sa"); vrátiť dátový zdroj; } @Bean public PlatformTransactionManager hibernateTransactionManager () {HibernateTransactionManager transactionManager = nový HibernateTransactionManager (); actionManager.setSessionFactory (sessionFactory (). getObject ()); return transactionManager; } súkromné ​​konečné vlastnosti hibernateProperties () {vlastnosti hibernateProperties = nové vlastnosti (); hibernateProperties.setProperty ("hibernate.hbm2ddl.auto", "create-drop"); hibernateProperties.setProperty ("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); vrátiť hibernateProperties; }}

4.2. Pomocou konfigurácie XML

Ako sekundárnu možnosť môžeme nakonfigurujte Hibernate 5 s konfiguráciou založenou na XML:

        create-drop org.hibernate.dialect.H2Dialect 

Ako ľahko vidíme, definujeme presne rovnaké fazule a parametre ako v konfigurácii založenej na prostredí Java skôr.

Zaviesť XML do jarného kontextu, môžeme použiť jednoduchý konfiguračný súbor Java, ak je aplikácia konfigurovaná s konfiguráciou Java:

@Configuration @EnableTransactionManagement @ImportResource ({"classpath: hibernate5Configuration.xml"}) verejná trieda HibernateXMLConf {//}

Prípadne môžeme jednoducho poskytnúť súbor XML do jarného kontextu, ak je celková konfigurácia čisto XML.

5. Použitie

V tomto okamihu je režim dlhodobého spánku plne nakonfigurovaný na jar, a môžeme vstreknite surový režim dlhodobého spánku SessionFactory priamo kedykoľvek potrebujeme:

verejná abstraktná trieda BarHibernateDAO {@Autowired private SessionFactory sessionFactory; // ...}

6. Podporované databázy

Projekt Hibernate bohužiaľ presne neposkytuje oficiálny zoznam podporovaných databáz.

Ako bolo povedané, je ľahké zistiť, či môže byť podporovaný konkrétny typ databázy, môžeme sa pozrieť na zoznam podporovaných dialektov.

7. Záver

V tomto rýchlom návode nakonfigurovali sme Spring s Hibernate 5 - s konfiguráciou Java aj XML.

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


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