[Seasar-user:2321] [要望][S2Dao] テーブル名に"_"を持つ場合の自動マッピング
Hirotaka HONMA
manholex
2005年 7月 3日 (日) 00:00:33 JST
本間です。
S2Dao 1.0.25で
>>
カラム名に_がある場合でも自動的にマッピングできるようにしました。
<<
と対応されていますが、テーブル名も同様に自動マッピングして
いただけないでしょうか?
BeanMetaDataImpl.javaのsetupTableName近辺を下記のようにすると
OKかと思います。
>||
private Pattern pattern_ = Pattern.compile("[^A-Z$][A-Z]");
protected void setupTableName(BeanDesc beanDesc, DatabaseMetaData dbMetaData) {
if (beanDesc.hasField(TABLE)) {
Field field = beanDesc.getField(TABLE);
tableName_ = (String) FieldUtil.get(field, null);
} else {
String shortClassName = ClassUtil.getShortClassName(getBeanClass());
if (isExistTable(dbMetaData, shortClassName)) {
tableName_ = shortClassName;
} else {
Matcher m = pattern_.matcher(shortClassName);
StringBuffer sb = new StringBuffer();
while (m.find()) {
String group0 = m.group(0);
m.appendReplacement(sb, group0.substring(0, 1) + "_"
+ group0.substring(1, 2));
}
m.appendTail(sb);
tableName_ = sb.toString().toUpperCase();
}
tableName_ = shortClassName;
}
}
private boolean isExistTable(DatabaseMetaData dbMetaData, String tableName) {
ResultSet rset = null;
try {
rset = dbMetaData.getTables(null, null, "IDENTITYTABLE", null);
return rset.next();
} catch (SQLException ex) {
throw new SQLRuntimeException(ex);
} finally {
ResultSetUtil.close(rset);
}
}
||<
以上です。よろしくお願いいたします。
--
Hirotaka HONMA <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内