Я использую Symfony2, и у меня есть некоторые объекты, определенные с @ORM\GeneratedValue(strategy="AUTO")
и @ORM\SequenceGenerator(sequenceName="mysequence_seq")
. Мои последовательности используют очень большие числа: они определены как числовые (22).Doctrine2 дает мне неправильные порядковые номера (переполнение)
Проблема заключается в том, что Symfony извлекает эти значения в виде целых чисел, и это неправильно, потому что эти числа не соответствуют одному 32-битовому значению. Нормальным порядковым номером может быть 103500000000000000003
(1035
- это какой-то идентификатор таблицы, а другой - последовательность. Не спрашивайте меня, почему мы унаследовали эту базу данных). Но Doctrine принимает это число как 2147483647 (2^31 - 1), и это нарушает порядковые номера и порождает ошибки PK.
Мой вопрос: могу ли я изменить тип данных, который Doctrine использует для чтения порядковых номеров без изменения ядра? Если нет, можете ли вы представить себе, как решить эту проблему? Имейте в виду, что я не могу изменить базу данных или формат порядкового номера.