kagamihogeの日記

kagamihogeの日記です。

S2JDBC で SQL 使用時に BeanMap のキーをキャメル記法にしなくする。

ドキュメントにやり方書いてあるんだけどね。一応メモ。

BeanMapはMapなクラスで、 存在しないキーにアクセスすると 例外が発生します。 キーの値は、AAA_BBBのような'_'記法の値ををaaaBbbのようなキャメル記法に 変換したものです。

このルールは、convention.diconで指定されている org.seasar.framework.convention.impl.PersistenceNamingConventionImpl のfromColumnNameToPropertyName()の実装を変えることで、カスタマイズすることができます。

Seasar2 - S2JDBC - JdbcManager - SQLによる操作 より抜粋

テーブルのカラム名が AAA_BBB の場合キーが aaaBbb に変換される。それをやってるのが org.seasar.framework.convention.impl.PersistenceConventionImpl クラスで、そのクラスを使用するということが convention.dicon に書いてある。で、PersistenceConventionImpl にはこんな感じのメソッドが存在してる。

    private boolean noNameConversion = false;
    /**
     * 名前を変換しないかどうかを設定します。
     * 
     * @param noNameConversion
     */
    public void setNoNameConversion(boolean noNameConversion) {
        this.noNameConversion = noNameConversion;
    }

なので convention.dicon で setNoNameConversion に true が渡るように設定してやればよい。



true