Как отключить вызов секвенции в symfony?

Тема в разделе "PHP", создана пользователем verfaa, 18 фев 2020.

XEvil 4.0 Релиз Состоялся!
Метки:
Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    407
    Симпатии:
    47
    Использую symfony 4.3.11
    В сущности есть поле ID, которое использует секвенцию.

    Код:
        /**
         * @var Id
         * @ORM\Column(type="work_articles_task_id")
         * @ORM\GeneratedValue(strategy="SEQUENCE")
         * @ORM\SequenceGenerator(sequenceName="work_articles_task_seq", initialValue=1)
         * @ORM\Id
         */
        private $id;
    В репозитории к сущности я добавил метод для получения очередного ID из секвенции:
    Код:
        public function nextId(): Id
        {
            return new Id((int)$this->connection->query("SELECT nextval('work_articles_task_id')")->fetchColumn());
        }
    
    Проблема заключается в том, что после того, как я получаю очередной ID из секвенции, вызвав метод nextId(), доктрина также вызывает секвенцию, перезатирая полученный ID. Есть ли способ, чтобы доктрина не вызывала секвенцию автоматически?
     
  2. JetSuit

    JetSuit Создатель Нарушитель

    Регистр.:
    18 июл 2011
    Сообщения:
    10
    Симпатии:
    30
    Поменяй аннотации
    @ORM\GeneratedValue(strategy="SEQUENCE")
    @ORM\SequenceGenerator(sequenceName="work_articles_task_seq", initialValue=1)
    на
    @ORM\GeneratedValue(strategy="IDENTITY")

    Она автоматом все подхватит.