彼らは、NHibernateでセッションファクトリを構築するのは高価で、一度だけ行うべきだと言います。私はこれについてシングルトンアプローチを使用します。これは、セッションが初めて要求されたときに実行されます。NHibernate SessionFactory
私の質問:セッションファクトリを閉じるべき時間がありますか?もしそうなら、これをいつ行うのでしょうか?
彼らは、NHibernateでセッションファクトリを構築するのは高価で、一度だけ行うべきだと言います。私はこれについてシングルトンアプローチを使用します。これは、セッションが初めて要求されたときに実行されます。NHibernate SessionFactory
私の質問:セッションファクトリを閉じるべき時間がありますか?もしそうなら、これをいつ行うのでしょうか?
これは私がHibernateでJavaで何をすべきかです:
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つだけでなければなりません。上のコードは、シングルトンパターンの例ではありません。 エンタープライズアプリケーションで作業している場合は、Springを休止状態で使用することをお勧めします。 これは、トランザクションの管理に役立ち、セッションファクトリを管理するというこの頭痛を取り除きます。
To AZ:これはセッションではなくSessionFactoryを指しています。私は、SessionFactoryのインスタンスが1つだけであるべきだとは言いませんが。一意の構成につき1つが必要です。たとえば、1つのアプリケーションが2つの異なるデータベースに接続している場合、2つの異なるSessionFactoryインスタンスが必要です。
このコメントを、AZの投稿にコメントとして追加します。質問に対する回答ではありません。回答は質問に対する回答であり、他の回答に対するコメントではありません。 – Phil
.NETでほとんど同じことをしています。 FluentNHibernateのため、構成のみが少し異なります。 –