[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 メーリングリストの案内