in grails-datastore-gorm-hibernate/src/main/groovy/org/grails/orm/hibernate/HibernateMappingContextSessionFactoryBean.java [379:467]
protected void buildSessionFactory() throws Exception {
configuration = newConfiguration();
if(hibernateMappingContext == null) {
throw new IllegalArgumentException("HibernateMappingContext is required.");
}
configuration.setHibernateMappingContext(hibernateMappingContext);
if (configLocations != null) {
for (Resource resource : configLocations) {
// Load Hibernate configuration from given location.
configuration.configure(resource.getURL());
}
}
if (mappingResources != null) {
// Register given Hibernate mapping definitions, contained in resource files.
for (String mapping : mappingResources) {
Resource mr = new ClassPathResource(mapping.trim(), resourcePatternResolver.getClassLoader());
configuration.addInputStream(mr.getInputStream());
}
}
if (mappingLocations != null) {
// Register given Hibernate mapping definitions, contained in resource files.
for (Resource resource : mappingLocations) {
configuration.addInputStream(resource.getInputStream());
}
}
if (cacheableMappingLocations != null) {
// Register given cacheable Hibernate mapping definitions, read from the file system.
for (Resource resource : cacheableMappingLocations) {
configuration.addCacheableFile(resource.getFile());
}
}
if (mappingJarLocations != null) {
// Register given Hibernate mapping definitions, contained in jar files.
for (Resource resource : mappingJarLocations) {
configuration.addJar(resource.getFile());
}
}
if (mappingDirectoryLocations != null) {
// Register all Hibernate mapping definitions in the given directories.
for (Resource resource : mappingDirectoryLocations) {
File file = resource.getFile();
if (!file.isDirectory()) {
throw new IllegalArgumentException("Mapping directory location [" + resource + "] does not denote a directory");
}
configuration.addDirectory(file);
}
}
if (entityInterceptor != null) {
configuration.setInterceptor(entityInterceptor);
}
if (namingStrategy != null) {
// configuration.setNamingStrategy(namingStrategy);
}
if (hibernateProperties != null) {
configuration.addProperties(hibernateProperties);
}
if (annotatedClasses != null) {
configuration.addAnnotatedClasses(annotatedClasses);
}
if (annotatedPackages != null) {
configuration.addPackages(annotatedPackages);
}
if (packagesToScan != null) {
configuration.scanPackages(packagesToScan);
}
if (eventListeners != null) {
configuration.setEventListeners(eventListeners);
}
sessionFactory = doBuildSessionFactory();
}