Как заставить Doctrine обновить поля типа массива?

У меня есть сущность Doctrine с полем типа массива:

/**
 * @ORM\Table()
 */
class MyEntity
{
    (...)

    /**
     * @var array $items
     * 
     * @ORM\Column( type="array" ) 
     */
    private $items;

    /**
     * @param SomeItem $item 
     */
    public function addItem(SomeItem $item)
    {
        $this->items[] = $item;
    }

    (...)
}

Если я добавлю элемент в массив, этот код работает правильно:

$myEntityObject->addItems(new SomeItem()); 
$EntityManager->persist($myEntityObject);
$EntityManager->flush();

$myEntityObject сохраняется в базе данных с правильными данными (массив сериализуется и десериализуется при запросе базы данных).

К сожалению, когда я изменяю один из объектов внутри массива без изменения размера этого массива, Doctrine ничего не делает, если я пытаюсь сохранить изменения в базе данных.

$items = $myEntityObject->getItems();
$items[0]->setSomething(123);
$myEntityObject->setItems($items);
$EntityManager->persist($myEntityObject);
$EntityManager->flush();
print_r($myEntityObject);

Хотя,print_r в последней строке этого кода отображаются измененные данные объекта, Doctrine не знает, что внутри массива что-то изменилось, если размер массива не изменился. Есть ли способ заставить Doctrine сохранить изменения, внесенные в это поле (или аккуратно проинформировать его об изменениях в этом поле, которые необходимо сохранить)?

Только что нашел в документации способ решить мою проблему:

http://docs.doctrine-project.org/en/latest/reference/change-tracking-policies.html

Это требует много изменений в коде, но это работает. Кто-нибудь знает, как сохранить политику отслеживания по умолчанию для других полей и использовать NotifyPropertyChanged только для поля, в котором хранится массив?

Ответы на вопрос(2)

Ваш ответ на вопрос