[Seasar-user:22111] 複数DBで、2個目のs2jdbc.diconが弾かれる。

Hideki Sato [E-MAIL ADDRESS DELETED]
2015年 12月 24日 (木) 13:16:17 JST


佐藤と言います。

‘13年8月ころよりApach clickで、Webアプリを作って来た者です。
当時、seaser2を使いたかったのですが、習得に手間取り、
clickで、お茶を濁してきましたが、新規案件も無くなり、
やっと、腰を据えてseaser2を紐解き始めて、3日目です。
「Seasear2徹底入門... 2010年4月19日」は手元にあります。

担当案件が、複数DBということで、当本とGoogleで
「seasar2 複数DB」で調べ、
s2jdbc.dicon
app.dicon
を設定し、

public class dbs_test {
    
    @Binding("jdbcManagerm")
     private static JdbcManager mJdbcManager;

    @Binding("jdbcManagersp")
     private static JdbcManager spJdbcManager;

    /**
     * @param args
     */
    public static void main(String[] args) {

        SingletonS2ContainerFactory.init();
        
        mJdbcManager = SingletonS2Container.getComponent(JdbcManager.class);
        
        List<MMsezo> resultsm = mJdbcManager.from(MMsezo.class)
                .where("kban = 'ABC-1234'")
                .getResultList();
    
        int j = 0;
        for(MMsezo mmsezo: resultsm) {
            System.out.println(
                    + j++
                    + ":" + mmsezo.kban
                    );
        
        }
        
        spJdbcManager = SingletonS2Container.getComponent(JdbcManager.class);
        
        List<SpRepair> resultssp = spJdbcManager.from(SpRepair.class)
                .where("goki = 'ABC-5678'")
                .getResultList();
        
        int i = 0;
        for(SpRepair sprepair: resultssp) {
            System.out.println(
                    + i++
                    + ":" + sprepair.goki
                    );
        }
        
        SingletonS2ContainerFactory.destroy();

    }

とすると、MMsezoは「0:ABC-1234」と表示しますが、
SpRepairは「Exception in thread "main" org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[select T1_.GOKI as C1_, T1_.REPAIR_NAIYO_KBN as C2_, T1_.REPAIR_NAIYO_ETC as C3_, T1_.SEIZO_BNGO as C4_, T1_.ERROR_DISPLY as C5_, T1_.SHOSAI as C6_ from SP_REPAIR T1_ where (T1_.GOKI = 'ABCD-5678')], Message=[[ESSR0072]SQLで例外(SQL=[select T1_.GOKI as C1_, T1_.REPAIR_NAIYO_KBN as C2_, T1_.REPAIR_NAIYO_ETC as C3_, T1_.SEIZO_BNGO as C4_, T1_.ERROR_DISPLY as C5_, T1_.SHOSAI as C6_ from SP_REPAIR T1_ where (T1_.GOKI = 'C9ER3980')], Message=[0], ErrorCode=42P01, SQLState={3})が発生しました : [SQLで例外(Message=[ERROR: relation "sp_repair" does not exist
となり、『"sp_repair" does not exist』、つまりは、s2jdbcsp.diconが弾かれます。

何分、日が浅いので、手詰まりとなっております。
どなたか、糸口を頂けると幸いです。

===== 以下、現在のdiconの設定 =====
s2jdbc.dicon
<components>
    <include path="s2jdbcm.dicon"/>
    <include path="s2jdbcsp.dicon"/>
</components>

s2jdbcm.dicon
<components>
    <include path="jdbcm.dicon"/>
    <include path="s2jdbc-internal.dicon"/>
    <component name="jdbcManagerm" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
        <property name="maxRows">0</property>
        <property name="fetchSize">0</property>
        <property name="queryTimeout">0</property>
        <property name="dialect">postgre81Dialect</property>
    </component>
</components>

s2jdbcsp.dicon
<components>
    <include path="jdbcsp.dicon"/>
    <include path="s2jdbc-internal.dicon"/>
    <component name="jdbcManagersp" class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
        <property name="maxRows">0</property>
        <property name="fetchSize">0</property>
        <property name="queryTimeout">0</property>
        <property name="dialect">postgre81Dialect</property>
    </component>
</components>

jdbcm.dicon
<components namespace="jdbc">
    <include path="jta.dicon"/>
    <!-- for PostgreSQL -->
    <!-- -->
    <component name="mDataSource"
        class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
        <property name="driverClassName">
            "org.postgresql.Driver"
        </property>
        <property name="URL">
          "jdbc:postgresql://localhost/bb_m"
        </property>
        <property name="user">"user"</property>
        <property name="password">"password"</property>
    </component>
    <!-- -->
</components>

jdbcsp.dicon
<components namespace="jdbc">
    <include path="jta.dicon"/>
    <!-- for PostgreSQL -->
    <!-- -->
    <component name="spDataSource"
        class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
        <property name="driverClassName">
            "org.postgresql.Driver"
        </property>
        <property name="URL">
          "jdbc:postgresql://localhost/bb_sp"
        </property>
        <property name="user">"user"</property>
        <property name="password">"password"</property>
    </component>
    <!-- -->
</components>

app.dicon
<components>
    <include path="convention.dicon"/>
    <include path="aop.dicon"/>
    <include path="s2jdbc.dicon"/>
 </components>

===== 以下、postgreSQL =====
DB:bb_m
 Table: m_msezo
     m_msmei
DB:bb_sp
 Table: sp_msezo
     sp_msmei
     sp_repair

--



Seasar-user メーリングリストの案内