私はSpring 2.5とそれに付随するHibernateを使用しています。Oracle 11g データベースに対して実行しています。
HibernateTemplate を拡張する DAO を作成しました。ここで、person テーブルに 500 万行を挿入するローダーを書きたいと思います。これは、CSV ファイルから行を読み取り、それを人に変換し、テーブルに保存するなど、単純な方法で記述しました。CSV ファイルが空になるまでこれを続けます。
問題は、約 450000 行でヒープ領域が不足していることです。そのため、メモリのサイズを 1024m から 2048m に 2 倍にすると、約 900000 行でメモリが不足します。
うーん....
そのため、Hibernate のクエリ キャッシュをオフにすることについていくつか読んだことがありますが、L2 キャッシュを使用していないため、これは問題ではないと思います。
JDBC2 のバッチ処理についていくつか読んだことがありますが、休止状態には当てはまらないと思います。
だから、私が見逃しているHibernateについての基本的なことがあるのだろうかと思っています。