Как перевести запрос на соединение sql в typeorm с помощью репозиториев? - PullRequest
0 голосов
/ 04 августа 2020

Пытаюсь написать этот запрос с помощью репозиториев

const d = await getManager().query(`SELECT exam.fiscal_code, exam.exam_id, exam.exam_date, exam.diagnosis 
        FROM exam INNER JOIN patient ON exam.fiscal_code = patient.fiscal_code 
        WHERE exam.doctor_id = ${req.user.doctorId} AND patient.name =${req.body.name} AND patient.surname =${req.body.surname}`)

1 Ответ

0 голосов
/ 04 августа 2020

_c Сначала вы должны прочитать документацию , так как очень ясно, как это реализовать.

Сначала вам нужно будет украсить свои свойства @ManyToOne или @ManyToMany, как описано в документы.

Затем просто используйте предоставленные методы, чтобы написать свой запрос:

await createQueryBuilder('exam')
    .innerJoinAndSelect('exam', 'exam.patient', 'exam.fiscalCode = patient.fiscalCode')
    .where(...)

Или, если вы правильно оформили свойства и предоставили обратную связь, вы могли бы просто сделать:

await createQueryBuilder('exam')
    .innerJoinAndSelect('exam.fiscalCode', 'fiscalCode')
    .where(...)

В следующий раз вам следует дать более точное описание вашего кода, чтобы люди могли лучше понять, что вы делаете, и дать более точный ответ. Поскольку не существует единственного способа сделать что-то.

Обратите внимание, что я использовал camelCase вместо snake_case для столбцов в методе innerJoinAndSelect. Это потому, что TypeORM ожидает имя свойств Javascript, а не SQL. Не знаю, называете ли вы их так, но все равно должны.

...