0

レガシー システムからデータを移行する必要があり、合計で 20,000 件以上のレコードがあります [すべてのデータは csv ファイルで提供されます]。いくつかの技術的な理由により、JPA/Hibernate を使用してそれらのデータを新しいシステムにインポートする必要があります現在使用中。

インポートを行うと、常に次のようなトランザクションの問題が発生しました。

データベースはMS SQL Server 2005です

org.hibernate.AssertionFailure: null id in xxxxentry (例外が発生した後にセッションをフラッシュしないでください)

そして、私は次のことを試しました:

  1. ネストされた例外を使用して別のレコードをインポートします。
  2. データをいくつかの小さな csv ファイルに分割します
  3. entityManager.flush()手動で呼び出し、 Thread.sleep(10000)10ms のスリープに追加
  4. titityManager.flush20 レコードごとに呼び出し、5 ミリ秒スリープする

しかし、残念ながら、何も役に立たないようです。助けてください。

読んでくれてありがとう。どんな助けでも大歓迎です!

4

1 に答える 1

0

マッピングが正しい場合、おそらくorg.hibernate.AssertionFailureで説明されているような間違ったインポート コードです。また、 Hibernate バッチ処理のベスト プラクティスとStateless session
について調べることもできます。最後のオプションは、スプリングバッチ に移動できます

于 2013-09-10T08:50:51.953 に答える