2010-12-30 11 views
2
private HibernateTemplate hibernateTemplate; 

     public void setSessionFactory(SessionFactory sessionFactory) { 
      this.hibernateTemplate = new HibernateTemplate(sessionFactory); 
    } 

SessionFactoryクラスとは何ですか? なぜそれを使用しますか? hibernateTemplateクラスとは何ですか?Hibernate SessionFactory

<bean id="myUserDAO" class="com.mysticcoders.mysticpaste.services.ContactSerImpl"> 
     <property name="sessionFactory" ref="mySessionFactory"/> 
    </bean> 

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="myDataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.mysticcoders.mysticpaste.model.Contact</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">create</prop> 
      </props> 
     </property> 
    </bean> 

これは、Beanに

答えて

7

アプリケーションはセッションファクトリからセッションインスタンスを取得します。 SessionFactoryは、ほとんどがアプリケーション内でSingletonと設定されています。 Springを使用している場合、アプリケーションコンテキストでシングルトンに設定されます。

SessionFactoryキャッシュは、実行時にHibernateが使用するSQL文とその他の マッピングメタデータを生成します。

1つの作業単位で読み取られたキャッシュされたデータであり、将来の作業単位で再使用される可能性があります( )。

あなたはここにあなたのconfで設定クラスから

SessionFactory sessionFactory = 
Configuration.buildSessionFactory(); 

をセッションファクトリのオブジェクトを取得することができます。あなたはAnnotationSessionFactoryBeanクラス

bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 

を使用してのSessionFactoryを設定していると、あなたはそれらが必要とされているセッションファクトリのいくつかのプロパティを設定しています。 Hibernateのデータアクセスコードを簡素化

ヘルパークラス:

HibernateTemplateは、ばねによって提供されるクラスです。 org.springframework.dao例外の階層に従って、自動的にHibernateExceptionsをDataAccessExceptionsに変換します。

3

何をやるんSessionFactoryのは、すべてのHibernateのマッピング情報が含まれており、それがトランザクション内のHibernateセッションの作成と保守を担当しています。

3
  1. のSessionFactoryは、アプリケーション全体または全体休止アプリケーションのセッション・オブジェクトのインターフェイスそれ送達の通りです。

  2. があり、一般的に1 のSessionFactoryされ、すべてのアプリケーションスレッドで を共有することができます。 SessionFactoryはスレッドセーフです。

  3. のSessionFactoryは、プロセスまたはクラスタレベルでのトランザクションの間で再利用可能であるデータの第2レベルのキャッシュです。

                     Continue....... 
    
関連する問題