私のWebアプリケーションでは、要求ごとのセッションパターンを使用します。私はFilter
の接続プールとオープンセッションをSessionFactory.openSession()
、次にSession.close()
を使用しています。Hibernateセッションを切断する方法
同じアプリでは、複雑なプロセスのために、会話あたりのセッションを使用します。 SessionFactory.openSession()
で2番目のセッションを開こうとしましたが、その後にSession.disconnect()
を呼び出すと何も起こりません。
セッションを手動で接続/切断するにはどうすればよいですか?これは私のHibernate設定ファイルである:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost/.....</property>
<property name="hibernate.connection.username">...</property>
<property name="hibernate.connection.password">...</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.test_connection_on_checkout">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
</session-factory>
</hibernate-configuration>
Javaコード:これは二回true
出力
longSession = mySessionFactory.openSession();
System.out.println(((SessionImplementor) longSession).isConnected());
longSession.disconnect();
System.out.println(((SessionImplementor) longSession).isConnected());
...
私はこれは Hibernate Documentsにこのノートに関係していると思います
私は知っていますが、どこでも会話について読んでいますが、実際にそれを使用するために何を呼び出すべきか分かりません。 SessionからConnectionを切断できるようにHibernateを設定するには? – Oliv
セッションを切断できるようにするにはどうすればよいですか? – Oliv
@Olivなぜ 'session.close()'を使いたくないのか分かりません。 –