このグーグルについては、たくさん見つけられますが、私はこの問題の解決策を見つけられませんでした。休止状態でclobをゆっくり読み込む
基本的に私が持っているのは、要求に応じてロードしたい特定のクラスの大きなCLOBです。これを行うには素朴な方法は、次のようになります。どうやら原因私はOracleドライバを使用しているという事実に、しかし動作しません
class MyType {
// ...
@Basic(fetch=FetchType.LAZY)
@Lob
public String getBlob() {
return blob;
}
}
は、すなわち、LOBオブジェクトは、単純なハンドルとして扱われませんが、常にロードされます。それで、私は私の仕事から信じるように導かれました。怠惰なプロパティローディングのための特別な計測を使用するソリューションがありますが、Hibernateのドキュメントでは正しく動作することに興味がないと思われるようですので、私はむしろそのルートにはいきません。特に、余分なコンパイルパスを実行する必要があります。
私が想像した次の解決策は、このオブジェクトを別のタイプに分離して関連付けを定義することでした。残念ながら、ドキュメントは競合する情報を提供しますが、共有プライマリキーとのOneToOneの関連付けでは遅延読み込みが機能しません。私はManyToOneとしてアソシエーションの片側を設定したいと思いますが、プライマリキーが共有されているときにこれを行う方法はわかりません。
だから誰でもこのことについて最善の方法を提案できますか?
Oracleで動作しない理由を明確にしてください。 – skaffman
私はそのビットをもう少し詳しく解説しましたが、私は正確な問題が何であるかについては完全にはわかりません(詳細についてはあいまいです)。マッピングに問題がある場合は、適切にclobを読み込む必要があるものを与えることができますか? – wds
Oracleで試したところ、失敗した場合、どのように失敗しましたか? – skaffman