2017-07-25 82 views
0

有一個名爲company_master的表,每個user_id有多行。我正在更新此表格,並將其一列設置爲false哪種更有效的數據更新方式?

哪種方式是首選?

1)獲得List<CompanyMaster>company_master表,然後設置狀態字段,然後更新對象循環

2)直接寫這樣的查詢

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

回答

0

如果可以的話,在你可以和你應該使用直接查詢進行更新或刪除操作。您不必先選擇記錄並進行更新,因爲它比直接更新慢 - 您選擇的數據不需要更新/刪除,您不需要在服務器端進行迭代(如它在性能上和在db端一樣慢)。當你需要更新大量記錄時,你也可能會遇到這種情況,在這種情況下,你可以從java存儲器中的數據庫中選擇數據庫,這只是浪費了內存消耗。