У меня есть родительский (Pricelist) объект с несколькими вложенными дочерними объектами (Items). Я пытаюсь обновить все через мутацию в моем pricelistResolver
. Все конечные точки в этом преобразователе работают правильно, за исключением updatePricelist
.
. Когда я пытаюсь вызвать мутацию, я получаю следующую ошибку "No entity column "items" was found."
.
Когда я проверяю элементы с помощью:
const pricelist = await Pricelist.findOneOrFail({ id });
console.log(pricelist?.items);
Отображаются все элементы в прайс-листе
При удалении items
из области видимости, вот так;
Pricelist.update({ id }, {name: input.name, description: input.description});
все работает как надо, но это не обновляет элементы ..
Может кто-нибудь показать мне правильное направление?
Прейскурант цен
@Resolver()
export class PricelistResolver {
// GET ALL PRICELISTS
@Query(() => [Pricelist])
async getPricelists () {
return await Pricelist.find();
}
// GET SINGLE PRICELIST
@Query(() => Pricelist)
async getPricelistById (@Arg('id') id: string) {
return await Pricelist.findOne({ id });
}
// POST NEW PRICELIST
@Mutation(() => Boolean)
async addPricelist (@Arg("input") input: newPricelistInput) {
await Pricelist.create(input).save();
return true;
}
// UPDATE PRICELIST
@Mutation(() => Boolean)
async updatePricelist (@Arg('id') id: string, @Arg('input') input: newPricelistInput) {
await Pricelist.update({ id }, input);
return true;
}
}
newPricelistInput
@InputType()
export class newPricelistInput {
@Field()
name: string;
@Field({ nullable: true })
@Length(0, 255)
description: string;
@Field(() => [newItemInput])
items: newItemInput[];
}
BaseClass
@ObjectType()
export class BaseClass extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
@Field()
id: string;
@Column({ nullable: true, default: Date.now() })
@Field({ defaultValue: Date.now() })
editDate: number;
@Column({ nullable: true, default: Date.now() })
@Field({ defaultValue: Date.now() })
creationDate: number;
}
Parent
@Entity('Pricelists')
@ObjectType()
export class Pricelist extends BaseClass {
@Column()
@Field()
name: string;
@Column()
@Field()
description: string;
@OneToMany(() => Item, item => item.Pricelist, { eager: true, cascade: true, lazy: true })
@Field(() => [Item], { nullable: true })
items: Item[];
}
Child
@Entity('Items')
@ObjectType()
export class Item extends BaseClass {
@Column()
@Field()
value: string;
@ManyToOne(() => ParentGroup, parentGroup => parentGroup.firstChildGroup, { cascade: true, lazy: true })
@Field(() => ParentGroup)
parentGroup: ParentGroup;
@ManyToOne(() => FirstChildGroup, firstChildGroup => firstChildGroup.parentGroup, { cascade: true, lazy: true })
@Field(() => FirstChildGroup)
firstChildGroup: FirstChildGroup;
@ManyToOne(() => SecondChildGroup, secondChildGroup => secondChildGroup.firstChildGroup, { cascade: true, lazy: true })
@Field(() => SecondChildGroup)
secondChildGroup: SecondChildGroup;
@ManyToOne(() => Pricelist, pricelist => pricelist.items)
@Field(() => ID)
Pricelist: Pricelist;
}