0

いくつかの画像を含む@Lobフィールドがほとんどないエンティティがあります。そして、次のメソッドを実行すると、

entityManager.persist(myEnity);

このメソッドは、テーブルが大きいため実行に時間がかかる次のクエリを生成します。

SELECT id, img_1, img_2 FROM my_entity WHERE (ID = :1) FOR UPDATE;

行のみを挿入したいので、このクエリを実行したくありません。

参考までに、私は以下のアプリケーション環境を持っています。

EJB 3.0
EclipseLink 2.3.0
JDK 1.6
WebLogic 10.3
Oracle 11g
4

1 に答える 1

0

Oracle 11 より前の Oracle JDBC ドライバーには 4k の LOB サイズ制限があったため、LOB を書き込む唯一の方法は、LOB を挿入して空にし、LOB を選択してそれらに書き込むことです。これがあなたが見ているものです。

これは構成可能で、「eclipselink.target-database」が「Oracle8i」、「Oracle9i」、「Oracle10g」の場合にのみ実行されます。

Oracle 11g では「Oracle11」を使用する必要があります。Oracle 11g ではロケータが不要になるため、このプラットフォームではロケータを使用しません。これには、最新バージョン (2.4) が必要になる場合があります。ターゲットとして「Oracle」を使用しても、ロケーターは使用されません。

カスタマイザーを使用して、プラットフォームでのロケーターの使用を無効にすることもできます。

platform.setShouldUseLocatorForLOBWrite(false);
于 2012-09-27T13:47:18.497 に答える