Добрый день. Подскажите пожалуйста. Изучил документацию и исходный код и все равно не понял.
Допустим есть сущность "Перечисляемое поле" и сущность "Значения перечисляемых полей". У любого Перечисляемого поля есть набор значений. Задача - установить для одного из значений признак "По умолчанию".
То есть, человек при редактировании значений для перечисляемого поля указывает - такое то значение будет по умолчанию.
Это значит, что сначала необходимо установить всем значениям перечисляемого поля признак "по умолчанию" в ноль, а потом для выбранного значения установить признак "по умолчанию" в 1.
Могу конечно просто сделать запрос к базе на update, но это костыль какой то. Везде orm, а тут бах и хардкод.
Сначала я подумал что можно получить getList()->fetchCollection внести изменения для каждого элемента на уровне объектов и потом сделать save для коллекции.
Я надеялся что это достаточно разумный подход и он сработает. Но он не сработал. Помимо всяких нелепых ошибок которые я хардкодом в рамках тестирования обошел, есть более важный вопрос.
Как в рамках концепции ORM производить массовые изменения таким образом, что бы они выполнялись либо как то так:
UPD ATE MY_TABLE SET NAME = 'name' WHERE PARENT_ID = 100Либо так:
BEGIN
UPD ATE MY_TABLE SE T NAME = 'name' WHERE ID = 1.......UPDATE MY_TABLE SE T NAME = 'name' WHERE ID = 10
COMMIT
Как в рамах ORM концепции сделать быстрое массовое обновление? Например, разом, одной транзакцией присвоить значение поля для набора записей удовлетворяющих условию - например, общий родительский элемент
Допустим есть сущность "Перечисляемое поле" и сущность "Значения перечисляемых полей". У любого Перечисляемого поля есть набор значений. Задача - установить для одного из значений признак "По умолчанию".
То есть, человек при редактировании значений для перечисляемого поля указывает - такое то значение будет по умолчанию.
Это значит, что сначала необходимо установить всем значениям перечисляемого поля признак "по умолчанию" в ноль, а потом для выбранного значения установить признак "по умолчанию" в 1.
Могу конечно просто сделать запрос к базе на update, но это костыль какой то. Везде orm, а тут бах и хардкод.
Сначала я подумал что можно получить getList()->fetchCollection внести изменения для каждого элемента на уровне объектов и потом сделать save для коллекции.
Я надеялся что это достаточно разумный подход и он сработает. Но он не сработал. Помимо всяких нелепых ошибок которые я хардкодом в рамках тестирования обошел, есть более важный вопрос.
Как в рамках концепции ORM производить массовые изменения таким образом, что бы они выполнялись либо как то так:
UPD ATE MY_TABLE SET NAME = 'name' WHERE PARENT_ID = 100Либо так:
BEGIN
UPD ATE MY_TABLE SE T NAME = 'name' WHERE ID = 1.......UPDATE MY_TABLE SE T NAME = 'name' WHERE ID = 10
COMMIT
Как в рамах ORM концепции сделать быстрое массовое обновление? Например, разом, одной транзакцией присвоить значение поля для набора записей удовлетворяющих условию - например, общий родительский элемент