ん?ん?んー?

http://www.atmarkit.co.jp/fjava/rensai4/troublehacks13/troublehacks13_1.html

三国志オタじゃないので小難しいことは知らない。紳々竜々は数々の戦場を渡り歩いて死ななかった兵(つわもの)だということしか。


ただ、おいらがわかるのはなんかへんだということ。

ソースを見る前にやることがあるんじゃないだろうか?

たとえば、EclipseLinkとToplink EssentialsはJPQLによるSQL発行のログがわかりやすく見れるのが特徴だ。バインドしたパラメータ変数も表示してくれる。OpenJPAもわりとみやすいほう。ちなみにHibernate EntityManagerのログは手っ取り早くないのでログの調整が面倒すぎて嫌い。

でも、そのログを真っ先に見ようとしない。プロファイラやソースを引っ張り出してきてわざと難しく考えてるのかな?



あとは金額計算するというのにメソッドの戻り値がdouble。えー。


それに拡張forが悪いように見える見出しはいかがなものか。これ、ループの中でSQL発行するようにしてるのがいけないだけであってJava5はわるくねーよ。JPAの使い方も最悪なのを選択しているだけだし。


まず単純に考える。JPQLだけでもSQL1本発行にして大幅に高速化は可能。エンティティ単位以外に処理をするならばselect newを使えばよい。JOINだって普通にある。JPA=エンティティしか扱えないと思ってる人も多すぎるような。

そして、フェッチも1行にして検索専用のデータがほしいのならばviewを作ればよいだけ。ネイティブクエリは最後の手段でよい。下手にネイティブクエリ発行されまくってJPAのキャッシュ制御関係が無駄になるのはもったいない。



この人わざと難しくしようとしてるんじゃないかなぁ。最後の結果だけはいいけど、その過程がでたらめすぎる。

あ、doubleなんて金額計算に使ってる時点でよいとはいえないか。



おいらは頭悪いから物事を簡単に考えるようにしている。難しいのは簡単にはならないけど、簡単なものは簡単なままでいいよね。