在hibernate 4.3.0.Final文档中,给出了以下代码片段来创建
SessionFactory
:package org.hibernate.tutorial.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
这似乎已经过时了,因为方法 buildSessionFactory()
已经被弃用。创建 SessionFactory
的正确方式是什么?
Configuration.configure()
被调用了两次。 我认为这可能会导致抛出像Duplicate class/entity mapping
这样的异常,因为配置被解析了两次。我认为代码的第10行应该更改为sessionFactory = configuration.buildSessionFactory(serviceRegistry);
。如果我错了,请纠正我。 - prageeth