@Bean
public EntityManagerFactory entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setJtaDataSource(dataSource);
entityManagerFactory.setPersistenceUnitName("SamplePersistenceUnit");
entityManagerFactory.setPackagesToScan(new String[] { "com.sample" });
entityManagerFactory.setJpaVendorAdapter(jpaVendorAdaper());
entityManagerFactory.setJpaPropertyMap(additionalProperties());
entityManagerFactory.setValidationMode(ValidationMode.NONE);
entityManagerFactory.setSharedCacheMode(SharedCacheMode.DISABLE_SELECTIVE);
ClasspathScanningPersistenceUnitPostProcessor hbmScanner = new ClasspathScanningPersistenceUnitPostProcessor("com.sample");
hbmScanner.setMappingFileNamePattern("**/*hbm.xml");
entityManagerFactory.setPersistenceUnitPostProcessors(hbmScanner);
entityManagerFactory.afterPropertiesSet();
return entityManagerFactory.getObject();
}