2017-07-25 4 views
0

company_masterという名前のテーブルがあり、各user_idに複数の行があります。私はこのテーブルを更新し、その列の1つをfalseと設定しています。より効率的なデータ更新方法はどれですか?

どのように優先されますか?

1)List<CompanyMaster>company_masterからテーブルを取得し、その後、ステータスフィールドを設定して、ループ内でオブジェクトを更新して、この

Query query= session.createQuery("update CompanyMaster set status=:status where userId= :userId"); query.setParameterList("status", false); query.setParameterList("userId", 1); query.executeUpdate();

答えて

0

することができます場合のようなクエリを直接書き込むこと

2)あなたの場合は可能ですし、更新や削除操作のために直接クエリを書くことをお勧めします。以前のレコードを選択して更新する必要はありません。直接更新よりも処理速度が遅いため、更新/削除の必要がないデータを選択すると、サーバー側で反復処理する必要はありませんdb側と同じようにパフォーマンスが遅くなります)。大量のレコードに更新する必要がある場合もあります。この場合は、データベースをJavaメモリーに格納して選択すると、メモリ消費量が浪費されます。

関連する問題