S2JDBCの複数スキーマー対応 解決編

アドバイスを頂き、成功しましたので、対応方法を記述します。

jdbc.dicon
s2jdbc.dicon

この2つのファイルは既に記述しました内容のままになります。


s2jdbc-print.dicon」




0
0
0
oracleDialect


s2jdbc-screen.dicon」




0
0
0
oracleDialect

「printjdbcManager」「screenjdbcManager」、「s2jdbc.dicon」をコピーしていましたので、上手くいかない時は「jdbcManager」になっていました。
つまり、1つしか指定されていなく、最初が勝つ、という現象になっていました。


s2jdbc-gen-build.xml

1.デフォルトにあります

 を削除します。

2.
 
 
 
 
 全てを選択し、同じファイルにコピーします。

3.エラーが出力されると思いますので、全てコピーした方に「2」を追加します。
 
 
 
 
 
 になります。

4.あとはそれぞれのjdbcmanagernameプロパティーに既にs2jdbc--.diconに定義した名前("printjdbcManager"等)を設定します。
 
jdbcmanagername="printjdbcManager"
 
jdbcmanagername="screenjdbcManager"
 上記以外のすべてのTargetタグ内を変更します(長くなるので省略です)。

5.Antを実行する時の引数を以下のようにします。
 gen-entity
 gen-entity2

6.上記の設定を行い、実行すると上手くいきました。

Serviceパッケージを見ると、

@Resource(name = "printjdbcManager")
@TransactionAttribute(TransactionAttributeType.NEVER)
public void setJdbcManager(JdbcManager jdbcManager) {
this.jdbcManager = jdbcManager;
}

@Resource(name = "screenjdbcManager")
@TransactionAttribute(TransactionAttributeType.NEVER)
public void setJdbcManager(JdbcManager jdbcManager) {
this.jdbcManager = jdbcManager;
}

それぞれに対応したjdbcManagerが問題なく出力されています。
やはり1度で全てが完了できると、うれしいです。