S2Dao捕捉

ひがさんから指摘を頂きました。昨日のValueTypeの初期化の部分は


ValueTypes.registerValueType(YMDate.class, new YMDateType());
を実行するよりは、ダイコンで

<component name="dummy" class="java.lang.Object">
<initMethod>
@org.seasar.extension.jdbc.types.ValueTypes@registerValueType(@s2dao.YMDate@class, new s2dao.YMDateType())
</initMethod>
</component>
とするほうが良いそうです。
(追記)あと、YMDateの実装が間違っているようでした。修正版はこれ

public class YMDate {
private long time;

public YMDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.clear(Calendar.MILLISECOND);
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MINUTE);
calendar.clear(Calendar.HOUR);
calendar.clear(Calendar.AM_PM);
this.time = calendar.getTimeInMillis();
}

public long getTime() {
return time;
}

public String toString() {
return new SimpleDateFormat("yyyy/MM/dd").format(new Date(time));
}
}

あとで検証に使うのでtoString()も実装しました。