У меня есть код с Doctrine аннотациями для того, как сохранить его в БД.
У меня есть строка идентификатора, которая уже была сгенерирована системой. Я хочу сказать Doctrine использовать идентификатор в качестве первичного ключа, а также сохранить его в базе данных при сохранении объекта.
В настоящее время кажется, что Doctrine просто не записывает это поле.
Doctrine \ DBAL \ Exception \ NotNullConstraintViolationException: исключение произошло при выполнении 'INSERT INTO голосование_motion (тип, имя, время_пуска, время_кр_дата, created_at, updated_at) VALUES (?,?,?,?,?,? ) 'с params ["personal_opinion", "Вопрос о еде", "2020-07-02 12:00:00", "2020-07-07 13:00:00", "2020-05-27 11:16 : 49 "," 2020-05-27 11:16:49 "]:
т.е. оператор вставки в просто не включает поле идентификатора.
Я думал, что GeneratedValue аннотация была бы уместной здесь. Но кажется, что нет.
Как мне сказать Doctrine, что «это основной идентификатор, и я хочу, чтобы вы записали его при сохранении объекта»?
Это мой код сущности с соответствующими аннотациями выглядит так.
/**
* @Entity
* @Table(name="voting_motion")
* @HasLifecycleCallbacks
*/
class VotingMotion
{
/**
* @Id()
* @Column(name="id", type="string", unique=true)
* @GeneratedValue(strategy="NONE")
*/
private string $id;
/** @Column(type="string") **/
private string $type;
/** @Column(type="string") **/
private string $name;
// ...
// ...
}