S2Dao/MySQL4.0で複数のスキーマに対応する
MySQLのJDBCドライバはDatabaseMetadataの使用時に問題があるようです。
他のDBではどうかわかりませんが、接続文字列で指定したスキーマ以外のスキーマのメタ情報を取ろうとするとエラーが発生します。
スキーマとDataSourceのマッピングを持つ、DaoMetaDataFactoryImplを使用することで解決できます。
拡張したDaoMetaDataFactoryImplとdiconファイルはこちら。
http://www.nulab.co.jp/~agata/s2/DaoMetaDataFactoryImpl.java
http://www.nulab.co.jp/~agata/s2/dao.dicon
public static final String TABLE = "schemeC.employee";
この拡張したDaoMetaDataFactoryImplは
BeanのTABLEアノテーションでスキーマが指定されている場合(スキーマ名.テーブル名)、dao.diconで指定したマッピングを利用してDataSourceを決定し、DatabaseMetadataを作成します。
スキーマが指定されていない場合、デフォルトのスキーマが使用されます。
S2TestCaseもちょっと工夫すれば、スキーマを指定してテストデータを流し込めるようになります。