遅延ロードおよび即時ロードは、どちらもデータベース内のinterMediaオブジェクトにコンテンツをロードする際、interMedia BC4Jドメイン・クラスをどのように使用するかについて示しています。遅延ロードでは、ロード処理を次の2つのステップに分けることができます。
postChanges()
またはcommit()
をコールし、データをロードします。 この2つのステップは、連続して実行する必要はありません。ステップの間に他の操作を追加することもできます。実際のロード操作が2番目のステップまで行われないため、遅延ロードと呼ばれます。遅延ロードは、新規レコードを表に挿入する際に使用すると便利です。interMediaのビジネス・コンポーネント・ドメインには、遅延ロード用に、インタフェースが1つと実装クラスが3つ存在します。
oracle.ord.im.OrdContentSource
(インタフェース)oracle.ord.im.OrdFileSource
oracle.ord.im.OrdByteArraySource
oracle.ord.im.OrdHttpUploadFileSource
この3つのクラスは、コンテンツをロードする際の代表的なソースを対象としています。ただし、この3つ以外のソースからコンテンツをロードする場合には、OrdContentSource
インタフェースを実装し、独自の実装クラスを指定する必要があります。
遅延ロードを使用する場合、実際のロードはpostChanges()
またはcommit()
コールの後で行われる点に注意してください。また、ロード後にinterMediaドメイン・クラスのsetProperties()
がコールされることも理解しておく必要があります。
遅延ロードとは対照的に、即時ロードでは、ソースからデータベース内のinterMediaオブジェクトへ、1つのステップでコンテンツがロードされます。即時ロードを行うには、interMediaデータベース・オブジェクトに初期化されたBLOBロケータが必要です。したがって、即時ロードは、初期化されたBLOBロケータのある既存のinterMediaデータベース・オブジェクトを更新する場合のみ使用できます。
必要に応じ、独自のOrdContentSource
実装を記述できます。たとえば、URLからデータベースへマルチメディア・コンテンツをロードする必要がある場合は、URLSource
クラスを記述します。
注意: URLからバイト配列にマルチメディア・コンテンツを読み込んだ後、OrdByteArraySource
を使用してコンテンツをデータベースにロードすることも可能ですが、大規模なコンテンツの場合、コンテンツをメモリー内のバイト配列に格納することは適切ではありません。
ファイルのコンテンツを含むレコードの挿入
バイト配列のコンテンツを含むレコードの挿入
OrdHttpUploadFileSourceのコンテンツを含むレコードの挿入
ファイルのコンテンツでレコードを更新
バイト配列のコンテンツでレコードを更新
入力ストリームのコンテンツでレコードを更新