Dxoの利用をしようかどうか迷っています。


DxoDxoに挑戦してみました。(ほんのちょっとだけ)

確かに便利なのですが、迷っている点が2点:


{A}
結局Reflectionなので、実装後のDB変更でColumnが変わった場合などに
DBFluteでEntityは自動で修正されますが、DTOは手動で修正しなければならない。
というかそこが連動してしまうのが微妙。名前が同じじゃないといけないので。
DTOどころかHTMLも直さなければならない。
無論そのときはDxoで明示的にMappingしてしまえばですが、それは{B}にて説明。
問題は、DB変更時の「CompileErrorだけを直せばOK」が崩れていることです。
手動で直すのが面倒なのはまだしも、CompileErrorだけ直して通り過ぎられると、
「気付いたら画面に値が表示されてない」という状態になってしまいます。

AutoTestでこれを検知できるようなTestを書けばいいのかなぁ...


{B}
親の親Table(NullableなFKに関連)のColumnをMappingされないので(自動は1階層まで)、
調べてみたら...

@ConversionRule("'parentGenreName' : genre != null ? (genre.genreSelf != null ? genre.genreSelf.genreName != null) : null")
public BookSearchDto convert(Book book);

でうまくいきました。
う、う、うーむー微妙...全然TypeSafeじゃない。。。

DoltengDTOを自動生成して、DBFluteでEntity自動生成して、
そのど真ん中でこれはちょっと迷います。

もちろん、どこかでSafetyじゃない部分は出てきてしまうのは仕方ないですが、
一般開発者にOGNLまで覚えてもらうのはCost高いなぁと考えます。
(ベタベタの詰め替えならある程度のProgramerなら指示無しでOKなので)

それともこっちもAutoTestでしっかりTestできれば問題ないのかな。
DxoのTestをいかに楽にやるかを考えた方が建設でしょうか!?


同名のものだけ自動Mappingで、そうでないものはProgramで実装、なんて器用にできないかなぁ
とか、色々、今まさしく考え中。