#topicpath
----
//ここにコンテンツを記述します。


**データベース関連 [#fbf52ea9]
beans.xmlはXDocletから自動生成されるけど、SpringのdataSourceやsessionFactoryなどはタグの各場所がわからなかったので、とりあえずhibernate-spring.xmlってファイルを作って読み込ませることにしました。ちなみに、複数のファイルを読み込ませるには
 <context-param>
   <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/beans.xml,
                /WEB-INF/classes/hibernate-spring.xml
   </param-value>  ここは一行で。
 </context-param>
をXDocletのマージファイル web-settings.xmlに書いておきます。

***hibernate-spring.xml [#m1aa0010]
とりあえず、要件や発生した課題は以下の感じです。
-WEBコンテナのDataSourceを使いたい
-Hibernate3.xを使いたい
-できれば、Hibernate Annotation使って楽したい(*.hbm.xml作りたくない)
-でも、通常hibernate.cfg.xmlで書く
 <mapping class="nu.mine.kino.rss.hibernate.Rss" />
をhibernate-spring.xmlで書く書き方がわからない

いろいろ調べて以下のように行くことにしました。
-hibernate-spring.xml
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
  "http://www.springframework.org/dtd/spring-beans.dtd">
 <beans>
   <!-- WEBコンテナのDataSourceを使う設定 -->
   <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="configLocation">
       <value>/WEB-INF/hibernate.cfg.xml</value>
       <!-- Mappingクラスだけ既存ファイルに書く  -->
     </property>
     <property name="configurationClass">
       <value>org.hibernate.cfg.AnnotationConfiguration</value>
     </property>
   </bean>
 </beans>
このファイルはsource直下など、クラスパスが通っているところに置いておきます。指定されている/WEB-INF/hibernate.cfg.xmlは
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
     <session-factory>
         <mapping class="nu.mine.kino.rss.hibernate.Rss" />
     </session-factory>
 </hibernate-configuration>
とAnnotationが書いてあるクラスファイルを指定しました。



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

#comment
#topicpath


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

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