如何修复EntitySchema中一对一关系的“无法读取未定义的属性'joinColumns'of undefined”错误

我有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应该足够聪明才能正确选择它? 那是这里唯一的事情。

有人可以告诉我如何解决此问题。

sealguyue 回答:如何修复EntitySchema中一对一关系的“无法读取未定义的属性'joinColumns'of undefined”错误

所以这里的错误很简单。相反,您没有提及列名,而是提及关系。就我而言,如果您看到我提到了variantId,将其替换为variant,请为我修复。

本文链接:https://www.f2er.com/3164883.html

大家都在问