[Seasar-user:1973] Re: S2Dao でTABLEアノテーションを間違えると
yone@abby.co.jp
yone
2005年 5月 16日 (月) 04:03:27 JST
米林です
> 勉強をかね、ソースを見てみたのですが
> BeanMetaDataImplクラスの setupPropertyPersistentAndColumnName() メソッドの
>
> Set columnSet = DatabaseMetaDataUtil.getColumnSet(dbMetaData,
> tableName_);
> の後で columnSet.size() == 0 なら エラーにすれば良いようでした。
>
> ここがエラーチェックに最適な場所かどうか判りませんが、
> 次のリリースの時に対応してもらえると嬉しいです。
→私もドキュメント・プロジェクトの勉強も兼ねてソースを見てみました。
上記箇所より、org.seasar.framework.util.DatabaseMetaDataUtil.java
の80行目以降の86行目で最終チェックを入れたら良いのかな?と思いました。
=========================================================================================
addColumns(dbMetaData, convertIdentifier(dbMetaData, schema),
convertedTableName, set);
if (set.size() == 0) {
addColumns(dbMetaData, schema, tableName, set);
}
if (set.size() == 0 && schema != null) {
addColumns(dbMetaData, null, convertedTableName, set);
if (set.size() == 0) {
addColumns(dbMetaData, null, tableName, set);
// ここで最終チェックを入れたら如何でしょうか?
}
}
=========================================================================================
#尚、上記 addColumns メソッド内 java.sql.DatabaseMetaData#getColumns の結果取得で
set.add(rs.getString(4)) している箇所を見てカラム名の大文字・小文字混在時の
場合は?とふと思ったのですが、
java.sql.DatabaseMetaData#supportsMixedCaseIdentifiers
チェックがばっちり入ってました。
以前、OracleからSQLサーバの移行で、カラム名のチェックにてこずった事を
思い出しました。
やはりソースを見るのはとても勉強になりますね。
Seasar-user メーリングリストの案内