S2JDBCでPersistenceConventionImplのnoNameConversionプロパティが効かない
Seasar2の不具合なのか、それとも仕様なのかよくわからないが、SQLファイルからBeanに詰め込む際、PersistenceConventionImplのnoNameConversionが効かない。
例えば、以下のSQLを
select AAA_BBB_CCC from TEST
次のようなBeanに詰め込みたいのだが、うまくいかない。
public class TEST { public String AAA_BBB_CCC; }
そもそもJavaぽくないぞ! という気もするのだが、いろいろわけありなのである。Columnアノテーションを使えば対応できるが二度手間なのと、ブラウザ側にJSON化して送る際、プレフィックスを削除したいという要望がある。
org.seasar.extension.jdbc.handler.AbstractBeanResultSetHandlerの下記記述が問題のところのようだ。
protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) throws SQLException { ... if (propertyDesc == null) { String propertyName = StringUtil.replace(columnName, "_", ""); if (!beanDesc.hasPropertyDesc(propertyName)) { continue; } propertyDesc = beanDesc.getPropertyDesc(propertyName); } ... }
うーむ、こういう使い方する人は少ないのだろうか。