// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents


**Hibernateと連携 [#c2357395]


***Spring側で設定したり、CommonsのDBCPを使用したり [#nfa685ff]
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"><value>org.gjt.mm.mysql.Driver</value></property>
    <property name="url"><value>jdbc:mysql://192.168.10.3/fuga</value></property>
    <property name="username"><value>hoge</value></property>
    <property name="password"><value>foo</value></property>
  </bean>
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <!-- Ver.3を使う場合は、hibernate3 -->
    <property name="dataSource">
      <ref local="dataSource" />
    </property>
    <property name="mappingResources">
      <list>
      <value>Weight.hbm.xml</value>
      <value>Name.hbm.xml</value>
      </list>
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">
          org.hibernate.dialect.MySQLDialect
        </prop>
      </props>
    </property>
  </bean>


***既存のhibernate.cfg.xmlをそのまま使う [#ld4299ed]
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation"> 
      <value>hibernate.cfg.xml</value> 
    </property> 
  </bean>

WEBアプリで使う場合は、<value>の値をhibernate.cfg.xmlのままだとクラスパス内を探してくれなかった。なぜかjndiがどうのこうのとか言ってる。
 <value>/WEB-INF/hibernate.cfg.xml</value> 
などとしておかないとダメっぽい。



***Hibernate Annotationを使う [#m34a56b1]
先のsessionFactoryの設定に、以下のプロパティを追加します。
  <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
  </property> 


***WEBコンテナのコネクションプールを使う場合 [#wbc55bb9]
 <bean id="dataSource" 
   class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
     <value>java:comp/env/jdbc/MySqlDS</value>
   </property>
 </bean>
 <bean id="sessionFactory" 
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource">
     <ref local="dataSource" />
   </property>
   <property name="mappingResources">
     <list>
       <value>nu/mine/kino/rss/hibernate/Rss.hbm.xml</value>
     </list>
   </property>
   <property name="hibernateProperties">
     <props>
       <prop key="hibernate.dialect"> 
         org.hibernate.dialect.MySQLDialect </prop>
     </props>
   </property>
 </bean>


**スニペット [#xb8b1d60]
***dataSource [#r750c6ff]
 <bean id="dataSource" 
   class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
     <value>java:comp/env/jdbc/MySqlDS</value>
   </property>
 </bean>


 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
   destroy-method="close">
   <property name="driverClassName">
     <value>org.gjt.mm.mysql.Driver</value>
   </property>
   <property name="url">
     <value>jdbc:mysql://192.168.10.3/webdb1</value>
   </property>
   <property name="username">
     <value>hoge</value>
   </property>
   <property name="password">
     <value>huga</value>
   </property>
 </bean>



***sessionFactory [#o2abd112]
***全部ココに書いて、hibernate.cfg.xmlを使わない場合 [#wfc79174]
 <bean id="sessionFactory" 
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource">
     <ref local="dataSource" />
   </property>
   <property name="mappingResources">
     <list>
       <value>nu/mine/kino/rss/hibernate/Rss.hbm.xml</value>
     </list>
   </property>
   <property name="hibernateProperties">
     <props>
       <prop key="hibernate.dialect"> 
         org.hibernate.dialect.MySQLDialect </prop>
     </props>
   </property>
 </bean>

これだとAnnotationを使ったときにhibernate.cfg.xmlで書いていた
 <mapping class="nu.mine.kino.rss.hibernate.Rss" />
と等価の記述方法がないような。。。。どうすんのかな。

***既存のhibernate.cfg.xmlを極力使い回す場合 [#bfccdff1]
 <bean id="sessionFactory" 
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="configLocation">
     <value>/WEB-INF/hibernate.cfg.xml</value>
   </property>
   <!-- また、Annotationを使う場合はConfigurationクラスを替える -->
   <property name="configurationClass">
     <value>org.hibernate.cfg.AnnotationConfiguration</value>
   </property>
 </bean>





----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS