#node.js #typeorm #node.js-typeorm
Вопрос:
В настоящее время у меня есть отношения «многие ко многим» между сущностями. Транзакция содержит много людей, а Человек содержит много Транзакций. Я пишу запрос для фильтрации транзакций, чтобы транзакции содержали имя человека. Проблема, с которой я сталкиваюсь, заключается в том, что когда я фильтрую по имени, это удаляет другого человека из транзакции.
Пример:
{
"id": 1,
"txnDate": "2021-03-09T12:40:26.000Z",
"persons": [
{
"id": 1,
"name": "Bill"
},
{
"id": 2,
"name": "Jen"
}
]
},
{
"id": 2,
"txnDate": "2021-03-09T12:40:26.000Z",
"persons": [
{
"id": 2,
"name": "Jen"
},
{
"id": 3,
"name": "Bob"
}
]
},
Мой текущий запрос таков:
query.leftJoinAndSelect('transaction.persons', 'persons')
.andWhere('persons.name = :name', { name });
где name
находится строка. Если я установлю name= Bill
, это приведет к:
{
"id": 1,
"txnDate": "2021-03-09T12:40:26.000Z",
"persons": [
{
"id": 1,
"name": "Bill"
},
]
},
Однако я хочу, чтобы при запросе по имени это приводило к:
{
"id": 1,
"txnDate": "2021-03-09T12:40:26.000Z",
"persons": [
{
"id": 1,
"name": "Bill"
},
{
"id": 2,
"name": "Jen"
}
]
},
Я действительно застрял, и мне были бы интересны любые идеи о том, как это решить
Текущий стек: Nodejs, TypeORM, TypeScript