1

LinkedBlockingQueue があり、すべての要素をデータベースに保存したいと考えています。私はそれを1つずつ保存できることを知っています:

ObjectModel om = new ObjectModel();
om.save();

ただし、これは、すべての要素をループして、それぞれに対して新しい接続を行う必要があることを意味します。リスト全体を一度に挿入できますか?

4

3 に答える 3

2

play 1.x では、サーバーがリクエストを受信すると、play/jpa がデータベースへのトランザクションを開きます。このトランザクションは、問題が発生した場合に自動的にロールバックされます。そうでない場合、応答がクライアントに送信されると自動的にコミットされます。

そのため、JPA エンティティをループしてそれらに対して save() を次々に呼び出しても、それらはすべて同じトランザクション内の同じ接続で実行されます。

Play 2でも同じように機能すると思いますが、正直なところ、わかりません.

于 2012-05-30T20:11:37.533 に答える
1

簡単な答えはNOではありません。将来的には、すべての個々のオブジェクトに対して挿入クエリを実行する必要があります。

挿入ごとに新しい接続を作成する必要はありません。各反復で、接続を作成し、同じ接続でインサートを起動する必要があります。

于 2012-05-30T15:47:48.673 に答える
0

たぶん、この質問はあなたをさらに前進させます。基になる DB で必要なことを行う方法を知っている場合は、ネイティブ クエリ (EntityManager を介して作成できる) を使用することもできると思います。

于 2012-05-30T20:26:07.787 に答える