Jackrabbitを Oracle データベースに統合しまし
た。Jackrabbit を使用してデータを取得したくない場合は、Jackrabbit を使用してデータを保存しています。どのような方法でデータを取得できますか。データベース内のデータは blob 型で保存されています。
2 に答える
Jackrabbit がデータを DB に格納する方法は実装の詳細であり、それが意味するものであれば、魔法のようにこれを「適切な」DB スキーマにマップするわけではありません。(階層的な性質とすべての JCR 機能により、これは不可能になります)。これは、Unix ファイル システムを持っていて、ファイル システムの実装から低レベルの inode などを読み取るにはどうすればよいかを尋ねるようなものです。
最後になりましたが、実行中は (Jackrabbit クラスターのセットアップを除いて) DB (Jackrabbit が使用するテーブル) に書き込む必要があることに注意してください。これにより、データが破損しやすくなります。
@TedTrippin が既に上で述べたように、ORM フレームワークを使用すると、作業がはるかに簡単になります。しかし、本当に Oracle で手動で実行したい場合は、次のようなアプローチになります。
OCM http://jackrabbit.apache.org/jcr/object-content-mapping.htmlのコードを調べてから、Oracle からの関連付けと関係のロジックに従ってコンテンツを取得します。おそらくドキュメントごとに 1 つではなく複数のクエリで行います。 ; 最終的には、Oracle でサポートされているユーザー定義関数を使用して、作業を容易にする可能性があります。
あなたの質問の背景を知ることは興味深いでしょう。「Spring」と「CMS」でタグ付けしました。Oracle から直接データにアクセスする理由がわかりません。面倒です。コンテンツの API を外部システムに提供したい場合、またはかつて Jackrabbit リポジトリをコンテンツ ストアとして使用していた CMS を失った場合でも、そのような ORM / OCM フレームワークを使用できます。データへのアクセスを容易にするためのスタンドアロン。