他们说在NHibernate中构建一个会话工厂是昂贵的,它应该只发生一次。我对此使用单例方法。这是在第一次请求会话时完成的。
我的问题:你是否应该每次都关闭Session工厂?如果是这样,人们什么时候会这样做?
答案 0 :(得分:6)
这就是我用Java做的Hibernate:
public class HibernateUtil
{
private static final SessionFactory sessionFactory;
static
{
try
{
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = 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;
}
}
你可以在你不再需要时释放你的SessionFactory我想,但老实说我从来没有关闭过我的会议工厂
答案 1 :(得分:2)
到AZ:这是指SessionFactory,而不是会话。虽然我不会说只应该有一个SessionFactory实例。每个唯一配置应该有一个。例如,如果单个应用程序连接到2个不同的数据库,那么您需要2个不同的SessionFactory实例。
答案 2 :(得分:1)
不,它会因你的程序而死,这很好。
答案 3 :(得分:0)
只应有一个sessionfactory实例。上面的代码不是单例模式的示例。 如果您正在使用企业应用程序,我建议将Spring与hibernate一起使用。 这将有助于您管理交易并消除管理会话工厂的所有麻烦