У меня есть две таблицы в схеме моего приложения: Событие и Игра (один ко многим).Игры упорядочены по полю даты и времени.Но иногда могут быть игры, в которые играют параллельно (та же дата и время), но пользователь должен иметь возможность установить их относительный порядок.
Я добавил поле innerOrder
(int) с простой идеей: оно должно иметьавтоматически сгенерированное значение, которое можно изменить при повторном заказе (обмен с соседней записью).Но я не могу добиться такого поведения с помощью Doctrine: GeneratedValue
нельзя использовать дважды / с отдельным полем (просто так не работает).
При следующей попытке, которую я пытался сделатьэто без автогенерации.Но мне нужно какое-то начальное значение при вставке, например: MAX(innerOrder)
(лучше - конечно, для автоматической установки).
Я не могу сделать это в prePersist
или аналогичных методах - не имеюдоступ к хранилищу класса.И не хочу делать это с дополнительным запросом в контроллере - не только из-за дополнительного кода, который я должен вставлять каждый раз (получить максимальное значение из таблицы, установить внутренний порядок), но я боюсь возможных конфликтов (когда два пользователядобавление игр параллельно).
Как мне добиться ожидаемого поведения (может быть, я здесь совершенно не прав)?