[Seasar-user:17239] Re: [S2JDBC]SerializableなUserDefineValueType
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2009年 4月 10日 (金) 10:32:27 JST
中村(taedium)です。
> PropertyMetaFactoryImpl#doValueTypeでの評価順が
> Serializable>UserDefineValueTypeとなっているため仕方ない
> のですが、これを回避する方法はございませんでしょうか?
もしかしたら、次のバージョンで修正されるかもしれませんが
とりあえずの回避策としては以下のものでどうでしょう?
まず、PropertyMetaFactoryImplのサブクラスを作成し
doValueTypeメソッドをオーバライドします。
public class MyProrpertyMetaFactory
extends PropertyMetaFactoryImpl {
@Override
protected void doValueType(PropertyMeta propertyMeta
, EntityMeta entityMeta) {
//SerializableとUserDefineValueTypeの評価順を入れ替える
}
}
オーバライドしたメソッドでは、親のメソッドをコピペして、
SerializableとUserDefineValueTypeの評価順だけを入れ替えます。
次に、s2jdbc.diconに次の2つのコンポーネントを登録します。
<component name="entityMetaFactory"
class="org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl"/>
<component name="propertyMetaFactory"
class="example.MyProrpertyMetaFactory"/>
name属性に"entityMetaFactory"と"propertyMetaFactory"を
指定するのは重要です。
propertyMetaFactoryのコンポーネントには
今回作成したクラスを指定してください。
--
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内