我有2个产品集ProductVariant和Inventory
module.exports = new EntitySchema({
name: 'ProductVariant',target: ProductVariant,columns: {
id: {
primary: true,type: 'varchar',},image: {
type: 'json',nullable: true,productId: {
type: 'varchar',relations: {
product: {
target: 'Product',type: 'many-to-one',joinColumn: {
name: 'productId',inventory: {
target: 'Inventory',type: 'one-to-one',inverseSide: 'variantId',cascade: true,});
和库存
const EntitySchema = require('typeorm').EntitySchema;
const Inventory = require('../models/inventory').Inventory;
module.exports = new EntitySchema({
name: 'Inventory',target: Inventory,columns: {
id: {
type: 'varchar',primary: true,unique: true,sku: {
type: 'varchar',variantId: {
type: 'varchar',}
},relations: {
variant: {
target: 'ProductVariant',joinColumn: {
name: 'variantId',});
现在,如果我运行此查询
const products = await ProductRepo.find({ relations: ['collections','variants','variants.inventory'] });
我收到一个错误,说Cannot read property 'joinColumns' of undefined
在我的数据库中,这些关系是完美建立的。唯一可能出错的地方是,没有从变体到库存的路径,但是有从库存到变体的路径。因此,这不是两方面的事情。一侧只有一对一,但ORM应该足够聪明才能正确选择它? 那是这里唯一的事情。
有人可以告诉我如何解决此问题。