[Seasar-user:15109] Re: [S2JDBC]Enum型プロパティの場合のDBに格納される値を変更したい

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 7月 22日 (火) 18:00:44 JST


小林 (koichik) です.

Date:    Sat, 19 Jul 2008 11:53:44 +0900
From:    "田山 博一たやま ひろかず" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15099] Re: [S2JDBC]Enum型プロパティの場合のDBに格納される値を変更したい

> 火曜日の対応で問題ないです。

お待たせしました.
ValueTypes に 3 つのメソッドを追加しました.

setEnumDefaultValueType(Class valueType)
  @Enumerated が指定されていない場合に使われる
  ValueType を設定します.
  デフォルトは EnumType です.

setEnumStringValueType(Class valueType)
  @Enumerated(EnumType.STRING) が指定された場合に
  使われる ValueType を設定します.
  デフォルトは EnumType です.

setEnumOrdinalValueType(Class valueType)
  @Enumerated(EnumType.ORDINAL) が指定された場合に
  使われる ValueType を設定します.
  デフォルトは EnumOrdinalType です.

特定の enum 型だけ変更したい場合は従来同様

registerValueType(Class clazz, ValueType valueType)

を使うことが出来ます.

通常は setEnumDefaultValueType() だけ
設定すれば十分かと思います.
設定方法は以下のようになります.

<component name="jdbcManager" 
    class="org.seasar.extension.jdbc.manager.JdbcManagerImpl">
  ...
  <initMethod>
    @[E-MAIL ADDRESS DELETED](
      @[E-MAIL ADDRESS DELETED])
  </initMethod>
</components>

なお,SQL 自動生成で渡されたパラメータには
@Enumerated の指定が反映されますが,
SQL および SQL ファイルを使った場合の
パラメータには影響がありません.
# 時制などと同様.

SNAPSHOT をデプロイしたのでご確認ください.

http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-framework/2.4.27-SNAPSHOT/s2-framework-2.4.27-20080722.083442-5.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-extension/2.4.27-SNAPSHOT/s2-extension-2.4.27-20080722.083442-5.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/container/s2-tiger/2.4.27-SNAPSHOT/s2-tiger-2.4.27-20080722.084557-5.jar


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内