blob
から読み取って書き込みを行う方法は、Hibernate
を使用しています。 ブロブのデータ全体がメモリにbyte[]
にロードされているため、現在はOutOfmemoryException
が取得されています。Hibernateでチャンク内のBLOBデータの読み込み/書き込み
より具体的には、大きいファイルをFile
というデータベーステーブルに保存したいとします。
public class File {
private byte[] data;
}
私はFileInputStreamをでファイルを開き、その後、何? コンテンツをストリーミングする必要があることをHibernateに伝えるには、一度にbyte[]
配列全体を渡すことはできませんか? byte[]
の代わりにBlob
を使用しますか?とにかく、どのようにコンテンツをストリーミングできますか?
読み込みに関しては、怠惰な読み込みのほかに、塊を読み込む必要がありますので、私はFile
を取得すると、OutOfMemoryException
を取得しません。
私が使用しています:
- のOracle 11.2.0.3.0
- にHibernate 4.2.3最終
- Oracleドライバ11.2
hbm.xmlで@Lobを定義するにはどうすればいいですか(hbm.xmlファイルでドメインオブジェクトを定義します)? – Atticus
@Lobアノテーションは、type = "blob"と言っている限り任意です。 –
誰がそのストリームを閉じる予定ですか? –