If I dont set anything programmatically and just call Configuration configuration = new Configuration().configure();
and use the hibernate.properties (as below)
Wow, just fixed the problem.
sessionFactory = configuration.buildSessionFactory(new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry());
I was missing the
.applySettings(configuration.getProperties())
Learnings
hibernate.connection.url
and NOT connection.url
if you use hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
WARN Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
, you need to replace http://www.hibernate.org/dtd/
in the cfg.xml and all hbm files too. Dont forget teh hbm files, they too use the same DTD.Lastly, referred to this, to fix this. The last advice by Bill Gorder
is superb.
private static SessionFactory configureSessionFactory()
throws HibernateException {
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
return configuration.buildSessionFactory(serviceRegistry);
}