Name
Password

Ymir+DBFluteという構成で複数のDBを扱いたい

  • 2009-09-11 17:56:24

A. 以下のようにしてください。

(以下、Viliの「Ymir+DBFluteプロジェクト」で作成したプロジェクトについて説明します。)

  1. src/main/resources/ のymir-dao.diconを以下のように用意します(ymir-dao.diconが存在しない場合は作成して下さい):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
      "http://www.seasar.org/dtd/components24.dtd">
    <components namespace="dao">
    </components>
    

    componentsのネームスペースは、他のものと同一でなければ任意のものでOKです。わかりやすい名前にしましょう。

  2. アクセスしたいデータベースの分だけdbflute-xxx.diconをymir-dao.diconでincludeするようにします。
  3. src/main/resources/ にymir-customizer+pageCustomizer.diconを作成して、pageCustomizer部分を複数DB対応にします(requiredTx周りの設定を複数DB用にします):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
      "http://www.seasar.org/dtd/components24.dtd">
    <components>
      <component name="pageCustomizer"
        class="org.seasar.framework.container.customizer.CustomizerChain">
        <initMethod name="addCustomizer">
          <arg>
            <component
              class="org.seasar.framework.container.customizer.AspectCustomizer">
              <property name="interceptorName">"j2eexxxdb.requiredTx"</property>
              <property name="pointcut">"_get.*,_post.*"</property>
            </component>
          </arg>
        </initMethod>
        <initMethod name="addCustomizer">
          <arg>
            <component
              class="org.seasar.framework.container.customizer.AspectCustomizer">
              <property name="interceptorName">"j2eeyyydb.requiredTx"</property>
              <property name="pointcut">"_get.*,_post.*"</property>
            </component>
          </arg>
        </initMethod>
        <initMethod name="addCustomizer">
          <arg>
            <component
              class="org.seasar.framework.container.customizer.AspectCustomizer">
              <property name="interceptorName">"j2eezzzdb.requiredTx"</property>
              <property name="pointcut">"_get.*,_post.*"</property>
            </component>
          </arg>
        </initMethod>
      </component>
    </components>
    

    pointcutの部分はプロジェクトの特性に合わせてカスタマイズしてください。

参考:http://ml.seasar.org/archives/seasar-user/2009-September/018472.html

(Thanks to Mr.Kaneko)