Pessoal estou precisando criar uma classe HibernateUtils genérica, de forma que eu consiga obter uma session para qualquer classe do meu sistema.
Estava estudando um exemplo que encontrei na apostila da Caelum, mas ele só funciona pra uma classe e não para todas como eu preciso. Seguem mais detalhes:
Esse é o exemplo encontrado na apostila fj21 da Caelum.public class HibernateUtil {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}
public class HibernateUtil {
private static SessionFactory factory;
public Session getSession(Class classe) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(classe);
factory = cfg.buildSessionFactory();
return factory.openSession();
}
}
11:24:30 INFO [Version] Hibernate Annotations 3.5.0-Final
11:24:30 INFO [Environment] Hibernate 3.5.0-Final
11:24:30 INFO [Environment] hibernate.properties not found
11:24:30 INFO [Environment] Bytecode provider name : javassist
11:24:30 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
11:24:30 INFO [Version] Hibernate Commons Annotations 3.2.0.Final
11:24:31 INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
11:24:31 INFO [AnnotationBinder] Binding entity from annotated class: com.clinimed.model.Configuracao
11:24:31 INFO [EntityBinder] Bind entity com.clinimed.model.Configuracao on table CONFIGURACAO
11:24:31 INFO [AnnotationConfiguration] Hibernate Validator not found: ignoring
11:24:31 WARN [UserSuppliedConnectionProvider] No connection properties specified - the user must supply JDBC connections
Exception in thread "main" org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:107)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:142)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at com.clinimed.util.HibernateUtil.getSession(HibernateUtil.java:14)
at com.clinimed.teste.TestaConfiguracao.main(TestaConfiguracao.java:15)
Desde já agradeço.