- 追加された行はこの色です。
- 削除された行はこの色です。
#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>
<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;}