[Seasar-user:19377] [S2JDBC-Gen] Dump-DataタスクでNULL値が0としてダンプされてしまう

Masayoshi Yamashita [E-MAIL ADDRESS DELETED]
2010年 2月 24日 (水) 21:59:32 JST


こんばんわ。山下と申します。
S2JDBC-Genを使っていて以下のような問題に遭遇しました。


環境
S2JDBC-Gen 2.4.40
MySQL 5.0.77 (CentOSにyumでインストール)
MySQL Connector/J 5.0.8

現象
EntityでInteger型で定義したカラム(DB上ではint型)の値がNULLのレコードをダンプすると、
CSVファイルでは0として出力される。

問題
Migrateタスクを実行するとNULL値ではなく0を格納しようとし、
外部キー制約が付いているカラムだと制約違反の例外が発生する。
(参照される側に値が0のレコードが無い場合)


S2JDBC-Genのソースを確認したところ、IntegerTypeクラスのgetValueメソッドにおいて
ResultSetから値を取得するときにgetIntメソッドを使っているのが原因のようです。
getObjectメソッドを用いて値を取得するようにすれば問題は解消されました。
(同様のコードが、SmallIntType, DoubleType, FloatTypeクラスにもありました。)

もしよろしければ、上記の対応をS2JDBC-Gen側で行っていただけませんでしょうか。
よろしくお願いします。


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