Доктрина не сохраняет сущность с логическими значениями и PDO :: ATTR_EMULATE_PREPARES = false в Mysql

Мы используем Symfony для создания некоторых веб-сервисов. Мы используем Doctrine-ORM для хранения сущностей и Doctrine-DBAL для извлечения данных, потому что они очень легкие и могут повторно использовать соединение ORM (диспетчер сущностей).

При использовании Doctrine-DBAL целочисленные значения возвращаются в PHP в виде строк, и мы хотим иметь целочисленные значения, особенно потому, что они возвращаются в Javascript. После этого обсужденияКак получить числовые типы из MySQL, используя PDO? мы установили MySQL драйверsudo apt-get install php5-mysqlnd и настройте нашу конфигурацию Symfony (dbal) с помощью PDO :: ATTR_EMULATE_PREPARE = ​​false:

doctrine:
    dbal:
         .
         .

         options:
            20 : false # PDO::ATTR_EMULATE_PREPARES is 20

С этой конфигурацией мы получаем целые числа, когда поля mysql являются целыми числами. Все идет нормально.

Но есть новая проблема: при сохранении сущностей с логическими значениями через Doctrine-ORM сущность не сохраняется. Мы видим в журналах INSERT и COMMIT, но записи нет в базе данных (если мы используем таблицу без логических полей, определенных в сущности, запись сохраняется).

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

Вопрос: кто-нибудь сталкивался с таким поведением? любой обходной путь? Должна ли Доктрина объяснить это?

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

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