[Seasar-user:12444] Re: [S2Container][Beans] Beansでの日付・時刻の変換
YASUO HIGA
[E-MAIL ADDRESS DELETED]
2008年 1月 10日 (木) 17:41:52 JST
ひがです。
> ふたがわです。
> >
> > dateFormat(String patter, String... propertyNames)
> > のようなメソッドを追加して、
> > Beans.copy(src, dest).dateFormat("yyyy/MM/dd HH:mm:ss.S").execute()
> > のようにすると、すべてのDate型のフィールドに適用し、
> >
> > Beans.copy(src, dest)
> > .dateFormat("yyyy/MM/dd HH:mm:ss.S", "aaa", "bbb").execute()
> >
> > みたいにすると、aaa、bbbのプロパティのみパターンが適用されるように
> > しましょうか。
>
> ご回答ありがとうございます。
> dateFormat(String patter, String... propertyNames)、良いと思います。
>
他に反対がなさそうなら入れておきます。
> ついでになってしまいますが、S2Dxoにあるプロパティ名の変換ルールのような
> 仕組みもあると嬉しいと思います。conversionRule()とかrule()とか。
>
> やりたいことはS2JDBCでのMapを使ったSimpleWhereを
> Beansだけで作りたいです。
>
> # 利用イメージ
> Map<String, Object> search = new HashMap<String, Object>();
> Beans.copy(this, search)
> .rule("jobType : jobType_IN")
> .rule("salary : salary_LE")
> .excludesNull()
> .execute();
こっちはあんまり賛成できません。
なぜなら、文字列で"jobType : jobType_IN"のように指定するより、
execute()の後に、map.put("jobType_IN", this.jobType);
みたいにJavaのコードで書いたほうが、jobTypeの部分は
コード補完が聞くし、タイプセーフです。
それよりも、検索条件用のフィールドは、他のフィールドと
一目でわかるようになっていたほうがいいので、
public String search_xxx;
public String[] search_jobType_IN;
public String search_salary_LE;
のようにプレフィックスをつけておいて、
Beans.copy(this, search)
.prefix("search")
.excludesNull()
.execute();
のようにするほうが、思わぬやつがコピーされないので安全です。
コピー先がJavaBeansだと予期せぬものはコピーされませんが、
コピー先がMapだとすべてコピーされるので危険なのと
いちいちexcludes()ではじくのも面倒なので。
Seasar-user メーリングリストの案内