多くのアプリケーション・システムでは、データは半永久的に保存され、いつでも参照できなければなりません。オブジェクト指向システムであれば、オブジェクト(インスタンス)注1の状態や関連を保存し復元すること、つまり、オブジェクトの永続化が必要です。 Javaを使って、このようなアプリケーションを作成する場合、永続化の方式には、いくつかの選択肢があります。現在、最も多く採用されているのは、リレーショナル・データベースとJDBCを組み合わせた方式でしょう。しかし、この方式では、O/Rマッピング(後述)と呼ばれる仕組みが必要になります。O/Rマッピングは、設計モデルを複雑にし、煩雑なプログラミングを必要とするため、システムの品質や生産性の低下を引き起こす原因となるケースも多々あります。 本稿では、このO/Rマッピングを解決するためのツールとして注目されているHibernateを使った永続化方式と、もと