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?