Как установить пользовательскую строку уникального идентификатора по умолчанию для @PrimaryGeneratedColumn в объекте TypeORM? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть сценарий использования, который вызывает в моих таблицах первичный ключ пользовательской строки. (Я не хочу использовать стандартный uuid, предоставляемый GraphQL, но вместо этого хочу использовать Shorttid Library для генерации уникального уникального идентификатора.)

Я новичок в TypeORM, и я не нахожу ничего относительно установки пользовательского первичного ключа по умолчанию в документах. Можно ли добиться того, что я хочу, в TypeORM PrimaryGeneratedColumn или мне нужно выполнить то, что я хочу, другими способами?

ОБНОВЛЕНИЕ: я узнал, что могу использовать прослушиватель @ BeforeInsert для изменения сущностей перед их сохранением, но TypeORM все еще не позволяет мне переопределить PrimaryGeneratedColumn ('uuid') и использовать строку shortId, потому что Строка shortId не является допустимым UUID.

1 Ответ

0 голосов
/ 04 сентября 2018

Декоратор @PrimaryGeneratedColumn('uuid') сопоставляет столбец с типом поля базы данных uuid, если база данных поддерживает его, что означает, что значения столбца должны быть действительными UUID.

Для вашего сценария я предлагаю украсить: typescript @PrimaryColumn('varchar', { length: <max shortId length>, default: () => `'${shortid.generate()}'` })

...