前提
在yml或properties文件中配置數據庫與數據庫連接池
Hibernate配置
幾種方式:
方式一:
@Configuration public class HibernateConfig { @Bean public SessionFactory sessionFactory(@Qualifier("entityManagerFactory") EntityManagerFactory emf){ return emf.unwrap(SessionFactory.class); } }
方式二:
@Autowired private EntityManagerFactory entityManagerFactory; @Bean public SessionFactory getSessionFactory() { if (entityManagerFactory.unwrap(SessionFactory.class) == null) { throw new NullPointerException("factory is not a hibernate factory"); } return entityManagerFactory.unwrap(SessionFactory.class); }
方式三:
在屬性配置文件中配置(可有可無)
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
@Bean public HibernateJpaSessionFactoryBean sessionFactory() { return new HibernateJpaSessionFactoryBean(); }
方式四:
在屬性配置文件中配置(可有可無)
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
@Bean public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) { return hemf.getSessionFactory(); }
調用
@Autowired private SessionFactory sessionFactory;