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