きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

JPAの学習中

こないだSunの研修「Java上でXML」とか言うのを受けてきた。
JAXPネタなんだけど、JAXBを知りたかった。
JAXBはたぶんWebサービスの研修になるんじゃないかな。


今週はEJBの研修を受けている。
いまはJPAを軽く触る程度。
僕はまだOneToManyとかは把握出来てない。


僕が関わってる案件に、JPAは役にたたないだろう。
ある意味、確信と言ってもいい。


ある程度小粒な案件ならJPAはさくさく進むかも。
簡単なオンライン処理ならJPAでもいい。
ただ、なんかJPAは仕様として、あやふやな事が多い。結局O/Rマッパー次第だし、結局はJDBCドライバ依存じゃん。JavaからDBMSまでの距離が遠くなるに連れて、やれる事が限定されていく不安に苛まれる。
トランザクション管理とのトレードオフとして、これは果たしてアリなのかナシなのか。


単純なロジックで、ほぼ右から左のINSERTには使いたいところだが、僕なんかが関わる案件は、バッチ処理が多く、処理件数がデカすぎるため、JPAみたいな仕組みでは32bitマシンでは無理がある。まあ、今時64bit使わないのも変な話なんだけども。64bitになると、GCはどのくらいのもんになるのか分からない。
それにexecuteBatchはJDBCとしてかなりの武器なんだが、JPAはO/Rマッパー任せみたいなんだ。Hibernateだと、どうやらバッチサイズの設定が出来るみたいだけど、パッと見た感じではステートメント単位に指定出来ないのでは?
それだとちょっと使いたくない。


では、SELECTはどうだろう?
ResultSetを普通に走査したいなー。
JPAだと、Listで返ってくるっぽいけど、
それがもしもJDBCドライバがやってるような透過性を持ってるなら嬉しいけど、たぶんそうじゃない予感がする。


なんだろう、メモリについてビクビクしちゃうのはオレだけ?