私はスプリング・バッチを使用してツリー状のエンティティを読み取り、変換し、JpaItemWriterを使用してOracleデータベースに書き込みます。私が意味するツリー状の実体について:OneToMany階層を持つSpringバッチ・バルク・インサート
class A {
@OneToMany
List<B> bList;
}
class B {
@OneToMany
List<C> cList;
}
class C {
@OneToMany
List<D> dList;
}
class D {
}
関係の大きさは、速い成長することができますが、ビジネス上の理由のために1つのトランザクションで一度に全体のエンティティを永続化するために必要とされます。この4レベル階層で私は知りたいと思っているバネJpaItemWriterを使ってトップダウン戦略でバルク挿入を呼び出すためのHibernate(JPA優先)アプローチを使用して、データベースへの1回の呼び出しですべての "B"エンティティを保持することは可能です次にすべての "C"エンティティなど、...デバッグログが表示されているごとに、各エンティティの1つの挿入の代わりに。助けを前にありがとう。
ありがとう@Dean。情報のために、私のバッチルーチンのコア処理は、プロパティを追加してからわずか11秒からわずか1秒です。 batch_sizeはすでに設定されていたので、値を100に上げました。もう一度お手伝いしてください:) – guilhermerama
Nice!私はいつでも660xのパフォーマンスを向上させます –