a) 単一のデータベースの場合、作成できるセッション ファクトリは 1 つだけで、任意の数のセッションを作成できます。
b) データベース (またはシステム) のトランザクション境界は常に必要です。データベースとの通信は、データベース トランザクションの外では発生しません (これは、自動コミット モードに慣れている多くの開発者を混乱させるようです)。読み取り専用操作であっても、常に明確なトランザクション境界を使用してください。分離レベルとデータベースの機能によっては、これが必要ない場合もありますが、トランザクションを常に明示的に区別する場合、マイナス面はありません。ただし、EXTENDED 永続化コンテキストで変更を保持する必要がある場合は、トランザクションの外部で操作を行う必要があります。
c) 休止状態のセッションは、SQL を直接記述せずに POJO を保存できるようにするための接続のラッパーです。
休止状態のセッションは、接続のラッパーです。接続は接続プールに保持されます。
SessionFactory.openSession hibernate を呼び出すと、最初に提供された接続プールから接続が取得されます。次に、その Connection の周りに Session を作成し、それを返します。