派遣169日目JPA(Java Persistence API)


学生が卒業課題用に実装したコードを持ってきた。


アノテーションでごちゃごちゃやってるのであまり見たことのないコードだなと思って、眺めていて、ふと思い出した。データベースアクセスをするのにJDBCではなく、JPAを使用していたのだ。


この大学のカリキュラムでは時間の関係上J2EEのマニアックな技術まで教えていない。多分、彼はどこかのサイトからパクってきたんだろう。


JPAは業務で使ったことがなく、Webや雑誌の記事レベルでしか知らない。とはいえ、とりあえず、ある程度勉強していてよかった。講師がJPAを知らずに、これは何なんだとはさすがに言えない。


彼がどの程度分かって使っているのか微妙だった。ただ、JDBCを使ったとしてもコピペしてくるのだろう。卒業課題程度であれば、そこまでデータ量も多くないし、求められるSQLもそんなに多くない。ソースコードの出来はともかく、課題は完成させることが目的なので、とりあえずJPAを使用することを許可した。



個人的な意見としてJPAやらHibernateなどのO/Rマッパーが使用できる場面は限定的だと思っている。結局のところ永続化の先がRDBだから。業務用システムだと、データ量やテーブルの結合のしかたによってSQLをチューニングせざるをえない場合が多々ある。ORマッパーでSQLを隠ぺいした場合、パフォーマンスチューニングで一番効果が出やすいSQLチューニングがしずらくなる。



こういう風に、たまにトリッキー?な技術を使ってくる場合があるので気が抜けない。