import org.hibernate.* import org.hibernate.cfg.* import org.hibernate.connection.* import com.barneyb.cfgroovy.hibernate.* try { def config = new AnnotationConfiguration() def cfgXml = getClass().getClassLoader().getResource("hibernate.cfg.xml") if (cfgXml) { config.configure(cfgXml) } if (variables.coldFusionDsn) { DataSourceConnectionProvider.dataSourceHolder.set(variables.coldFusionDsn) config.setProperty(Environment.CONNECTION_PROVIDER, "com.barneyb.cfgroovy.hibernate.DataSourceConnectionProvider") config.setProperty(Environment.DRIVER, variables.coldFusionDsn.dataSourceDef.className) } if (variables.annotatedClasses) { variables.annotatedClasses.each { config.addAnnotatedClass(getClass().getClassLoader().loadClass(it)) } } if (variables.mappedClasses) { variables.mappedClasses.each { config.addClass(getClass().getClassLoader().loadClass(it)) } } variables.sessionFactoryWrapper = new SessionFactoryWrapper( config.buildSessionFactory(), variables.cfgroovy.ENGINE_ID ) } catch (HibernateException he) { if (variables.coldFusionDsn && he.message.indexOf("Hibernate Dialect must be explicitly set") >= 0) { throw new HibernateException("Hibernate Dialect could not be detected. This may be because your DSN is misconfigured or your database isn't responding.", he) } else { throw he } } finally { DataSourceConnectionProvider.dataSourceHolder.set(null) }