#typeorm
Вопрос:
Я новичок в отношениях typeorm
и сталкиваюсь с проблемами в OneToMany
отношениях. У меня есть Person
сущность, которая содержит @OnetoMany
отношение к Member
сущности и @ManyToOne
отношение к Fare
сущности. Я могу опубликовать новое Person
без проблем, но я получаю ошибку при обновлении существующего Person
со следующим текстом:
{"firstName":"john","lastName":"doe","fareId": 1}
Ошибка заключается в следующем:
(node:699940) UnhandledPromiseRejectionWarning: Error: Cannot query across one-to-many for property members
Вот моя Person
сущность:
import { Entity, Column, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; import { Fare, Member } from "./"; @Entity() export class Person { @PrimaryGeneratedColumn() id: number; @Column({ unique: false, nullable: false }) firstName: string; @Column({ unique: false, nullable: false }) lastName: string; @Column({ unique: false, nullable: true }) address: string; @Column({ unique: false, nullable: true }) phone: string; @Column({ unique: false, nullable: true }) email: string; @OneToMany(() =gt; Member, member =gt; member.person) members: Member[]; @ManyToOne(() =gt; Fare, fare =gt; fare.persons) fare: Fare }
Вот часть обновления моего контроллера:
router.put('/persons/:id', async (req: Request, res: Response) =gt; { const id = req['params']['id']; const person = await this._personService.readOne(id); if (!person) { res.status(400).send('Person not found') } const { lastName, firstName, address, email, phone, fareId } = req['body']; if (fareId) { const fare = await this._fareService.readOne(fareId); if (!fare) { res.status(400).send('Fare not found') } else { person.fare = fare; } } person.lastName = lastName ? lastName : person.lastName; person.firstName = firstName ? firstName : person.firstName; person.address = address ? address : person.address; person.email = email ? email : person.email; person.phone = phone ? phone : person.phone; const updatedPerson = await this._personService.update(person,id); res.send(updatedPerson); });
и вот часть обновления моего Person
сервиса:
public update = async (person: Person, id: number) =gt; { const updatedPerson = await this._personRepository.update(id, person); return updatedPerson; }
знаете ли вы, что не так с моим кодом ?