public static Configuration createConfiguration(HibernateCredentials credentials) {
Configuration conf = new Configuration();
PersistedFacts.getListOfPersistedFactClasses().forEach(conf::addAnnotatedClass);
conf.addAnnotatedClass(TemplateORM.class).addAnnotatedClass(InstanceORM.class);
conf.setProperty("hibernate.connection.driver_class", credentials.getHibernateDriver())
.setProperty("hibernate.connection.url", credentials.getHibernateURL())
.setProperty("hibernate.connection.username", credentials.getHibernateUsername())
.setProperty("hibernate.connection.password", credentials.getHibernatePassword())
.setProperty("hibernate.dialect", credentials.getHibernateDialect())
.setProperty("hibernate.hbm2ddl.auto", "update")
.setProperty("show_sql", "false")
.setProperty("hibernate.c3p0.min_size", "5")
.setProperty("hibernate.c3p0.max_size", "20")
.setProperty("hibernate.c3p0.timeout", "1800")
.setProperty("hibernate.c3p0.max_statements", "50");
return conf;
}
}