Hibernate はもういらないのか
以上、6 記事にわたって Hibernate の使い方を見てきました。本当は結合とかの話もしたかったのですが、私自身まだ実例を作っていない*1ということもあるのですが、何よりも
Hibernate そのものを使うことはほとんどない
という実態の方が大きな要因として挙げられます。最近では JPA を使うことの方が多く、Hibernate はその実装という立場に回り、表向きは Hibernate を知らなくても良くなりました。HQL の代わりに JPQL(Java Persistence Query Language)を使い、マッピングファイルからも解放され、全てアノテーションで解決することができます。EJB と組み合わせれば、かなりスピーディーに開発を進められるでしょう。
もう一つの要因として
複数データベースへの対応が必要ないのに Hibernate や JPA を積極的に利用する意味はあるのか ?
というのも挙げられます。Hibernate にしろ JPA にしろ、データベースが異なることによる SQL の「方言」を吸収し、データベースとの直接のやりとりを隠蔽することが主たる目的です。使用するデータベースが固定されていることが最初からわかっているなら、Hibernate や JPA を積極的に利用していく価値は薄れます。むしろ MyBatis のように「(SQL は書く必要があるが) SQL 文の可読性を高めることができる」ツールの方が使い勝手がいい場合もあります。下手な HQL or JPQL よりも SQL の方がマシだった、ということもあり得ます。
こんなことを書くと「Hibernate ってもういらないんじゃね ?」と思うかもしれませんが、前にも書いた通り、Hibernate は JPA の実装の一つとして生き残ると考えます*2。なので「Hibernate とかいらねーですしおすし」と言っている人には自信を持って「ちげーよ」と言ってやりたいと思っています。