Многие-Ко-Многим реализовать в TypeORM. Казалось бы, простейший случай, вроде ничего лишнего нет. https://git.prettyhat.ru/alexandr/test
Так тоже пробовал. Не работает.
Для выборки вы должны потом сделать или join, или указать в опции выборки relation другой
До выборки ещё дойти надо. Пока их не получается даже создать)
Не решил проблему?
Неа. Ни как. Уже плавление мозга началось.
Ты тут?)) я не смог подключиться к БД через mariadb и сделал свой пример на postgresql и взял пример из доки, все работает
Значит надо мне попробовать ещё раз.
Так, все таки победил марьюшку и проверил твой код. 1) Все асинхронные операции (в сервисе) должны вызываться через async await, у тебя просто async 2) В контроллере GroupsController у тебя this.getAll() вместо this.groupsService.findAll() 3) Сущность Group - убираем связь ManyToMany 4) Сущность User оставляем связь, обрати внимание, JoinTable @ManyToMany(() => Group) @JoinTable() groups: Group[]; 5) UserService метод create переделать на async create(dto: CreateUserDto): Promise<User> { const groups = await this.groupsService.findByIDs(dto.groups); return await this.usersRepo.save({ ...dto, groups }); } 6) GroupService метод create переделать на async create(dto: CreateGroupDto): Promise<Group> { return await this.groupsRepo.save(dto); } 7) CreateGroupDto - убрать users Если ошибка будет - кидай лог ошибки, если ни кто не подскажет - завтра гляну, ушел бай
Спасибо. На работу приеду, буду пробовать.
1) А какой смысл возвращать return await? Ведь функция возвращает Promise<T>? Одно дело, когда мы оборачиваем это в блок try. Тогда будет смысл в await. 7) Вот это совсем не понял. Зачем убирать функционал, который нужен? Мне надо передавать список пользователей, при создании группы.
1) значит не понял твоей задумки, ведь промис потом уходил в контроллер и на фронт, вместо значения 7) окей, переделай как тебе нужно, говорю же, не сразу понял задумки. Но по сущностям то понял как делать? Заработало?
Обсуждают сегодня