Разве это не странно ???
Зависит от того, как вы к этому относитесь, но да, мне также нравится иметь возможность просто установить идентификатор, а не получить всю связанную информацию сущность.
Это хороший способ сделать это? И это все еще единственный способ сделать это?
Я также нахожусь в процессе выяснения typeorm. Я обнаружил, что вы можете сделать:
product.category = <any>3;
// or
product['category' as any] = 3;
repository.save(product) // I don't know how you have the persist() method.
и, в вашем случае, столбец product.categoryId будет установлен на 3. Если categoryId является внешним ключом, и вы устанавливаете несуществующий идентификатор , вы получите ошибку внешнего ключа, как и должны.
Но в этом случае ts будет думать, что product.category
имеет тип Category
. Вы также можете указать свойство category
как Category | number
. Но тогда вам придется делать проверки типов везде, что раздражает. Я немного проверил это, но я не уверен, что это вызовет некоторые ничего не подозревающие ошибки.
Какое отношение имя имеет к этому ??
Хорошо, вы предоставили опцию, чтобы определить 2 свойства: category
, которое является отношением, и categoryId
, которое является столбцом. Свойство categoryId
должно быть названо как столбец в таблице, но вы также можете передать name: 'actual_name'
в @Column
декоратор. Я не знаю, что произойдет, если вы установите свойства columnId
и column
с разными идентификаторами.