DAO, ORM и запросы - PullRequest
       14

DAO, ORM и запросы

0 голосов
/ 27 ноября 2009

Необходимо обновить одно поле до того же значения в куче записей.Используя структуру DAO / ORM, я бы извлекал каждый родительский объект, просматривал каждый дочерний объект, обновлял его поле и затем сохранял его.

Было бы быстрее просто написать SQL: update table set field =значение, где критерии = указано.

Как мне совместить эти вещи?Должен ли я просто придерживаться структуры дао:

for (Table t : getTableDao().getTables()){  
  for(Child c : t.getChildren()){  
    c.setValue(1);  
    getChildrenDao().save(c);  
  }
}

Приветствия.

1 Ответ

1 голос
/ 27 ноября 2009

Как правило, массовые обновления не должны выполняться так, как можно было бы считать «нормальным ORM», то есть, как вы описываете, циклически проходя по каждому объекту.

Любой разумный ORM имеет механизм для запуска обычного оператора обновления SQL, как вы предлагаете, и, как правило, это правильный способ сделать это.

То, что вы используете ORM, не означает, что вы не сможете воспользоваться преимуществами системы, основанной на реляционном наборе. Используйте объекты, когда объекты имеют смысл, и используйте SQL, когда SQL имеет смысл.

...