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

Seiichi Araki [E-MAIL ADDRESS DELETED]
2015年 12月 24日 (木) 14:04:19 JST


佐藤さん

荒木@IIJといいます。

ちなみに

sp_msezo
sp_msmei

に変えてもダメでしょうか。ただ、sp_repairがないだけじゃないですよね


On 2015/12/24 13:16, Hideki Sato wrote:
> 佐藤と言います。
> 
> ‘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 mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 

-- 
============================================================
荒木 誠一 / Seiichi Araki
株式会社インターネットイニシアティブ
プラットフォーム本部プラットフォームサービス2部
データベース技術課 プロダクトマネジャー

E-mail:saraki @ iij.ad.jp
Tel: 03-5305-6342 Fax: 03-5205-6537

============================================================


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