@Bean(name = "entityManagerFactory", destroyMethod = "destroy")
  LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
      DataSource dataSource, Environment env) {
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean =
        new LocalContainerEntityManagerFactoryBean();
    entityManagerFactoryBean.setDataSource(dataSource);
    entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
    entityManagerFactoryBean.setPackagesToScan("com.test.mmm.entity");
    // added for scanning hbm files
    ClasspathScanningPersistenceUnitPostProcessor classpathScanningPersistenceUnitPostProcessor =
        new ClasspathScanningPersistenceUnitPostProcessor("com.test.mmm.entity");
    classpathScanningPersistenceUnitPostProcessor.setMappingFileNamePattern("*.hbm.xml");
    entityManagerFactoryBean.setPersistenceUnitPostProcessors(
        classpathScanningPersistenceUnitPostProcessor);

    Properties properties = new Properties();
    properties.put("hibernate.dialect", env.getProperty("hibernate.dialect"));
    properties.put("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
    properties.put("hibernate.format_sql", env.getProperty("hibernate.format_sql"));
    properties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));

    entityManagerFactoryBean.setJpaProperties(properties);

    return entityManagerFactoryBean;
  }