Предположим, у меня есть сущность, сопоставленная с таблицей базы данных MariaDB
со следующими полями: ID
, firstName
и lastName
.
Эта сущность была загружена из базы данных в объекте PHP и я выполняю следующий код
/**
* $myEntity is the entity and $em is the entity manager
* $myEntity->getFirstName(); Would be John
* $myEntity->getLastName(); Would be Doe
*/
$myEntity->setFirstName("Bob");
$em->persist($myEntity);
$em->flush();
В результате вы получите следующий запрос:
UPDATE `table`SET `firstName` = 'Bob' WHERE `ID`= "x"
Или следующий запрос:
UPDATE `table` SET `firstName` = 'Bob', SET `lastName` = 'Doe' WHERE `ID` = 'x'
В общем: как Doctrine обрабатывает неизмененные поля, и что считается "неизмененным"? То же значение, без присвоения переменной, что-то еще?
Я искал в документации Doctrine и в Google, но ничего не нашел по этому вопросу.
Я спрашиваю, потому что у меня есть объект, который, очевидно, больше, чем тот, что в примере (35 столбцов, включая 2 TEXT
столбцов), и часто только один или два столбца обновляются одновременно.