5

Java Web アプリケーションで、save エンティティの 100 インスタンスごとに一度に保持したいのですが、それを行う最善の方法は何ですか? 尊重しなければならない時間の制約がいくつかあります。永続的な操作は高速でなければなりません。他の方法よりも速い方法はありますか?ありがとうございました

4

2 に答える 2

11

基本的に探しているのは、JPA を使用したデータベースへのバッチ挿入です。これらのトピックはすでに取り上げられており、次のことに役立ちます。

概要

  • Hibernate のバッチ挿入を使用します。Hiberate は、エンティティをバッチで挿入および更新するためのメソッドを提供します。

  • 自動 ID 生成を無効にします。 ID を自動的に生成する場合、Hibernate はエンティティごとにクエリを実行して主キーを生成します。

意見

基本的に、自動 ID 生成を無効にすることは悪い考えだと思います。Hibernate のバッチ メソッドのほとんどを使用できますが、これによってパフォーマンスが大幅に節約されることはありません。

これが完了したら、アプリケーションの他のレイヤーで最適化を探すことをお勧めします。

于 2012-08-20T08:18:18.503 に答える
1

Springと統合されたHibernateを使用している場合は、使用できますHibernateTemplate#saveOrUpdateAll

 mHibernateTemplate.saveOrUpdateAll(entities);
于 2015-08-11T11:14:28.210 に答える