Я использую Symfony2 с Доктриной, и я использую пакет Alice Fixture для создания своих светильников для тестирования.Могу ли я переопределить идентификатор автоматического увеличения с помощью Alice Fixtures?
В одном случае мне нужно создать прибор, где идентификатор - 148 для конкретного теста. Все наши идентификаторы настроены на auto_increment, поэтому я в настоящее время создаю 147 фиктивных записей, чтобы создать тот, который мне нужен.
Я надеялся использовать это определение, чтобы заставить идентификатор должен быть установлен на 148:
invoiceClassNoClass (extends invoiceClass):
id: 148
sortOrder: 1
label: 'No Class'
К сожалению, это не работает. Из поиска Google я прочитал краткий комментарий о том, что мне сначала нужно добавить метод setId для моего объекта. Я пробовал это, но это не имело значения. На самом деле я не хочу добавлять метод setId, если мне это не нужно, поскольку это нарушает наши правила целостности, где мы никогда не разрешаем установку id.
Возможно, существует класс отражения, который можно использовать? Возможно, это встроено в Алису, и я не знаю об этом?
* Сначала мне нужно добавить метод setId для моего объекта. Я пробовал это, но это не имело значения. * Пожалуйста, объясните это более точно, вы получили сообщение об ошибке? Добавление 'setId', вероятно, является лучшим и простым решением вашей проблемы. –
Тип генератора идентификаторов будет переопределять то, что вы установили с помощью setId, поэтому просто установить его на объект не будет трюк. – David
@ Давид Вы уверены? IIRC, auto incrementing используется только тогда, когда первичный идентификатор равен null. –