Weboldal keresés

node.js - TypeORM egy-az-egyhez kapcsolat MongoDB-ben


Új vagyok a TypeORM-ben, szóval előre is elnézést, ha ez a kérdés bután hangzik.

Két táblám van, a User és a Category. A User táblában van egy categoryId oszlop, amely idegen kulcs a Category táblára.

Kategória tábla:

@Entity()
export class Category {

    @ObjectIdColumn()
    public _id: ObjectID;

    @PrimaryColumn()
    public id: string;

    public toString(): string {
        return `${this.id}`;
    }

}

Felhasználói tábla

@Entity()
export class User {

    @ObjectIdColumn()
    public _id: ObjectID;

    @PrimaryColumn()
    public id: string;

    @Column()
    public categoryId: string;

    @OneToOne(type => Category)
    @JoinColumn()
    category: Category;

    public toString(): string {
        return `${this.id} ${this.categoryId}`;
    }

}

A kategória részleteit szeretném lekérni, miközben a felhasználót lekérdezem. A lekérdezés, amit használok, a következő:

userRepository.findOne({ where, relations: ['category']});

Most a probléma az, hogy amikor használom a @JoinColumn()-t, hibát dob.

MongoError: bad index key pattern {}: Index keys cannot be empty.

Amikor a @JoinTable()-t használom, nem kapom meg a várt eredményt.

Mik ezek a @JoinColumn() és @JoinTable()? Mikor kellene ezeket használni?