[jpa:42] Re: JPA は単独で使ってもあんまり便利じゃない

Hidenoshin Yoshida [E-MAIL ADDRESS DELETED]
2007年 4月 26日 (木) 08:23:22 JST


吉田(da-yoshi)です。

> ところが照会系も、データベースをそのまま表示するだけのことが多くて、集計
> も、単に合計するだけなら表示側のコンポーネント内で表示ついでに積算すれば
> 大丈夫なので、エンティティがとても役立ったり。

紹介系でも、一覧表示などは複数テーブルからJOINして選択した数カラムを
ページングで表示・・・みたいなパターンが多いと思うので
それをEntityとその関連で表示させるのはちょっと欲張りな気がするし
後々パフォーマンスに響いてくる気もします。
逆に詳細系や編集系だと、FETCH JOINしていろんな関連を持ち、
CASCADE定義で一括更新できるEntityを渡してやれば便利かなと思ってます。

なので、自分は基本的に一覧表示ではEntityを使わずJPQLも使わず、
SQLでPOJOで取得し、詳細表示や編集画面になって初めて
Entityを利用するようにしています。
そうすれば、複雑なQueryが必要な場面でJPQLやEntityを無理に使おうとして
後々パフォーマンスチューニングでSQLに書き換える・・・みたいな状況に
陥ることを極力防げます。また、詳細や編集画面で必要となる
1件検索とか外部キーによる関連取得とか更新作業とかは、それこそJPAの
得意分野なので、JPAを導入するメリットを使ってみて実感できました。

Kuina-DaoやHibernateのSQLQueryを好んでいるのは、JPQLでEntityを取得する
処理と、SQLでPOJOを取得する処理を同じフレームワークで実現
出来るからですね。JPAだけで全て出来ればベストだったんですけど。

-- 
吉田秀之進
[E-MAIL ADDRESS DELETED]


jpa メーリングリストの案内