第19章 XML マッピング
XML マッピングは Hibernate3.0 では試験的な機能であり、積極的に開発中です。
19.1. XML データでの作業 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Hibernate では永続性の POJO を使って作業するのとほぼ同じようなやり方で、永続性の XML データを使って作業できます。解析された XML ツリーは POJO の代わりにオブジェクトレベルで関係データを表わす別の方法であるとみなされています。
Hibernate は XML ツリーを操作するための API として dom4j をサポートしています。データベースから dom4j のツリーを復元するクエリを書くことができ、ツリーに対して行った修正は自動的にデータベースと同期されます。また XML ドキュメントを取得することができ、 dom4j を使ってドキュメントをパースし、 Hibernate の任意の基本操作を使ってデータベースへ書き込むことができます。: つまり、
persist(), saveOrUpdate(), merge(), delete(), replicate() 操作です (マージはまだサポートしていません)。
データのインポート/エクスポート、 JMS によるエンティティデータの外部化や SOAP 、 XSLT ベースのレポートなど、この機能には多くの用途があります。
単一のマッピングは、クラスのプロパティと XML ドキュメントのノードを同時にデータベースへマッピングするために使うことができます。またマッピングするクラスがなければ、XML だけをマッピングするために使うことができます。
19.1.1. XML とクラスマッピングの同時指定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
これは POJO と XML を同時にマッピングする例です:
19.1.2. XML マッピングだけを指定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
これは POJO クラスがないマッピングの例です:
このマッピングにより、dom4j ツリーか、プロパティ名/値の組のグラフ(java の
Map)としてデータにアクセスできます。プロパティ名は、 HQL クエリ内で参照できる純粋な論理構造です。