Spring声明式事務管理、Spring統合ハイベルナー


        
Spring       、Spring  Hibernate  


、Spring :Spring 。(AOP , )
  :hibernate org.springframework.orm.hibernate3.HibernateTransactionManager

、 :
    1. :
    a) PROPAGATION_REQUIRED: 。 , 。 。Spring TransactionDefinition 。
    b) PROPAGATION_SUPPORTS: 。 , 。
    c) PROPAGATION_MANDATORY: 。 , 。 , 。
    d) PROPAGATION_REQUIRES_NEW: 。 , , 。
    e) PROPAGATION_NOT_SUPPORTED: 。 , 。
    f) PROPAGATION_NEVER: 。 , 。
    g) PROPAGATION_NESTED: , 。 , ROPAGATION_REQUIRED 。

   2. :
    a) ISOLATION_DEFAULT: 。Spring PlatfromTransactionManager .
    b) ISOLATION_READ_UNCOMMITTED: 。 。 , 。
    c) ISOLATION_READ_COMMITTED: 。 。
    d) ISOLATION_REPEATABLE_READ: , 。 。
    e) ISOLATION_SERIALIZABLE: 。 、 、 。 。

   3. : , 。
   4. : , 。 , 。
   5. : , 。
      RuntimeException , 。( EJB )
      。 。


1. Spring 。


<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 <property name="sessionFactory" ref="sessionFactory"/>
</bean>

2. パラメータの ( )

<tx:advice id="txAdvice" transaction-manager="transactionManager">
 <tx:attributes>
  <tx:method name="*" />
  <tx:method name="find*" read-only="true"/>  
 </tx:attributes>
</tx:advice>
3.AOPの :

  <aop:config>
 <!--     -->
 <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.qiujy.service.*.*(..))"/>
</aop:config>
4. に づく の :
    1) マネージャを します.
    2)Springの へのサポートを にする:        tractionn-manager で されているトランザクションマネージャの がtractionManagerである は、この は されます.「tx:annotationn driven/」と くことができます.
    3)@Transactionalを して、 するクラスまたは に を する.トランザクションパラメータの は、Spring referenceを する.
         @Transationはインターフェースにも できますが、このようにすることは められません.インタフェースの は の ぎ を き ぐことができないので、 を きやすいです.
、Spring hibernate:
  1.hibernateを するために なカバン:
  2.classipathにHibernateのプロファイルを します.
  3.Springプロファイルにsession Factoryを する :
<bean id=「session Factory」class=「org.spring frame ebook.orm.hibernate 3.Local Session FactoryBen」
<property name=「configLocation」value=「classipath:hibernate.cfg.xml」/>
<property name=「dataSource」ref=「dataSource」/>

hibernateが を してオブジェクト のマッピングを う 、このクラスを します.
org.springframe ebook.orm.hibernate 3.annotations.AnnotationSession FactoryBen
  4.デカップリングのために. たちがヒベルナのDAO に したのは、ヒベルナSession Factoryです.
    を しないならば、Springから されるHibernature Template と、Hbernature DaoSupport を することができます.
  5.hibernateのコードは と わりません. の もSpringの システムで しています.