Bootstrapping Hibernate 5 med våren

1. Oversikt

I denne artikkelen vil vi diskutere hvordan du gjør det bootstrap Hibernate 5 med våren, ved hjelp av både Java- og XML-konfigurasjon.

Denne artikkelen fokuserer på Spring MVC. Vår artikkel Spring Boot with Hibernate beskriver hvordan du bruker Hibernate i Spring Boot.

2. Vårintegrasjon

Bootstrapping a SessionFactory med det opprinnelige Hibernate API er litt komplisert og vil ta oss ganske mange linjer med kode (se på den offisielle dokumentasjonen i tilfelle du virkelig trenger å gjøre det).

Heldigvis, Våren støtter bootstrapping av SessionFactoryslik at vi bare trenger noen få linjer med Java-kode eller XML-konfigurasjon.

3. Maven-avhengigheter

La oss komme i gang ved først å legge til de nødvendige avhengighetene til vår pom.xml:

 org. dvale dvalekjerne 5.4.2.Final 

Vår-orm-modulen gir vårintegrasjon med dvalemodus:

 org.springframework spring-orm 5.1.6.RELEASE 

For enkelhets skyld bruker vi H2 som vår database:

 com.h2database h2 1.4.197 

Til slutt skal vi bruke Tomcat JDBC Connection Pooling, som passer bedre for produksjonsformål enn DriverManagerDataSource levert av Spring:

 org.apache.tomcat tomcat-dbcp 9.0.1 

4. Konfigurasjon

Som nevnt før, støtter Spring oss med bootstrapping Hibernate SessionFactory.

Alt vi trenger å gjøre er å definere noen bønner samt noen få parametere.

Med våren har vi det to alternativer for disse konfigurasjonene, en Java-basert og en XML-basert måte.

4.1. Bruke Java-konfigurasjon

For å bruke Hibernate 5 med Spring, har lite endret seg siden Hibernate 4: vi må bruke LocalSessionFactoryBean fra pakken org.springframework.orm.hibernate5 i stedet for org.springframework.orm.hibernate4.

Som med Hibernate 4 før, må vi definere bønner for LocalSessionFactoryBean, Datakilde, og PlatformTransactionManager, samt noen dvalespesifikke egenskaper.

La oss lage våre HibernateConfig klasse til konfigurer dvalemodus 5 med våren:

@Configuration @EnableTransactionManagement offentlig klasse HibernateConf {@Bean public LocalSessionFactoryBean sessionFactory () {LocalSessionFactoryBean sessionFactory = ny LocalSessionFactoryBean (); sessionFactory.setDataSource (dataSource ()); sessionFactory.setPackagesToScan ({"com.baeldung.hibernate.bootstrap.model"}); sessionFactory.setHibernateProperties (hibernateProperties ()); returøktFabrikk; } @Bean public DataSource dataSource () {BasicDataSource dataSource = new BasicDataSource (); dataSource.setDriverClassName ("org.h2.Driver"); dataSource.setUrl ("jdbc: h2: mem: db; DB_CLOSE_DELAY = -1"); dataSource.setUsername ("sa"); dataSource.setPassword ("sa"); returner datakilde; } @Bean offentlig PlatformTransactionManager hibernateTransactionManager () {HibernateTransactionManager transactionManager = ny HibernateTransactionManager (); transactionManager.setSessionFactory (sessionFactory (). getObject ()); returtransaksjonManager; } private final Egenskaper hibernateProperties () {Properties hibernateProperties = nye egenskaper (); hibernateProperties.setProperty ("hibernate.hbm2ddl.auto", "create-drop"); hibernateProperties.setProperty ("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); returnere dvaleegenskaper; }}

4.2. Bruker XML-konfigurasjon

Som et sekundært alternativ kan vi også konfigurer Hibernate 5 med en XML-basert konfigurasjon:

        create-drop org.hibernate.dialect.H2Dialect 

Som vi enkelt kan se, definerer vi nøyaktig de samme bønner og parametere som i den Java-baserte konfigurasjonen tidligere.

Å starte XML i vårkonteksten, kan vi bruke en enkel Java-konfigurasjonsfil hvis applikasjonen er konfigurert med Java-konfigurasjon:

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

Alternativt kan vi bare gi XML-filen til Spring Context, hvis den generelle konfigurasjonen er ren XML.

5. Bruk

På dette tidspunktet er Hibernate 5 fullt konfigurert med Spring, og vi kan injiser den rå dvalemodus SessionFactory direkte når vi trenger å:

offentlig abstrakt klasse BarHibernateDAO {@Autowired private SessionFactory sessionFactory; // ...}

6. Støttede databaser

Dessverre gir Hibernate-prosjektet ikke akkurat en offisiell liste over støttede databaser.

Når det er sagt, det er lett å se om en bestemt databasetype støttes, kan vi ta en titt på listen over støttede dialekter.

7. Konklusjon

I denne raske opplæringen, vi konfigurerte Spring med Hibernate 5 - med både Java- og XML-konfigurasjon.

Som alltid er hele kildekoden til eksemplene tilgjengelig på GitHub.


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