0
我正在使用Java和Hibernate在數據庫中進行更改,但是我遇到了一些可以達到我的好奇心的事情。就我所知,以下兩種方法在數據庫上的結果完全相同。除了表演之外,是否有任何分歧?對我來說,似乎沒有必要從表格中提取行列表並循環訪問列表,只需使用查詢更改該值即可。使用合併查詢或滾動列表更新數據庫值?
你對此有何看法?
private EntityManager em;
public void updateValue(String id, String value) {
em.createQuery(" UPDATE Table table " +
" SET value = :newValue," +
" WHERE id LIKE :newId",
Table.class)
.setParameter("newId", id)
.setParameter("newValue", value);
}
public void updateValue(String id, String value) {
List<Table> tables =
em.createQuery("SELECT table " +
" FROM Table table" +
" WHERE id LIKE :newId",
Table.class)
.setParameter("newId", id)
.getResultList();
for (Table table : tables) {
table.setValue(value);
em.merge(table);
}
}
既然要更新的值,你可以用查詢輕鬆地做到這一點,沒有理由進行選擇/合併代替。 – Kayaman 2014-11-03 12:23:40