cypher256's blog

Pleiades とか作った

JavaBeans プロパティ命名ルール

JavaBeans 仕様では先頭の連続する 2 文字が大文字だと先頭が小文字になりません。Struts でハマった方も多いのではないでしょうか? S2JDBC でも厳密にこれに沿っているため、DB のテーブル名が T_HOGE とかだと、S2JDBC デフォルトだとテーブルの外部キーが テーブル名 + "id" となり、プロパティ名が THogeId となります。tHogeId になって欲しいので、PersistenceConventionImpl を継承し、fromColumnNameToPropertyName メソッドを下記ような感じに書き換えました。使っているのは Seasar の StringUtil ではなく Commons StringUtils です。なんか他のメソッドも書き換えないとだめな気もしますが、とりあえず動いてる気がします。

    //return StringUtil.decapitalize(StringUtil.camelize(columnName));
    return StringUtils.uncapitalize(StringUtil.decapitalize(StringUtil.camelize(columnName)));