A Day In The Life

とあるプログラマの備忘録

ダークサイドJava

Struts + Spring + Hibernateが魔の組み合わせと言われるのがようやくわかってきました。

とりあえずメモ。

  • Strutsは実質FormにString型のフィールドしか使えない。
  • Formからモデルに変換が必要。
  • ドメインモデルにするとFormとの変換が超大変。

    →オブジェクト/フォームマッピング(O/F Mapping)と名づけよう。

  • 上記理由からテーブルとモデルは1対1にしたほうが安全。
  • Formとモデルを変換してるとHibernateの管理下に置けないため毎回Hibernateのセッションクリアが必要(Hibernateのセッション管理下にモデルを置かない)。

    →宣言的トランザクションで問題が起きないか調査が必要。あとタイムスタンプの管理をきっちりやらないとLockエラーが出るので注意。



前のプロジェクトでもStrutsを使いましたがそのときはテーブルとモデルは1対1にしてさらにすべての属性をStringにしました。

業務ロジックが複雑になってかなり痛い目みましたが…。同じ目には会いたくないと思うもすでに遅いような気もしますが。



今のところStruts1.X系を使う理由がどこにも見つからないです。

どうしてもStruts使うならHibernateはやめたほうがいいと思います。