#mysql #node.js #typeorm #node.js-typeorm
Вопрос:
Вот мои сущности типа orm:
@Entity()
export class Conversation {
@PrimaryGeneratedColumn()
id: number;
@ManyToMany((type) => User, (user) => user.conversations)
attendees: User[];
}
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@ManyToMany((type) => Conversation, (conversation) => conversation.attendees)
@JoinTable()
conversations: Conversation[];
}
Имея два разных идентификатора пользователя, я хочу выбрать один объект беседы, который содержит обоих этих пользователей как attendees
.
Что мне удалось получить до сих пор, так это разговоры одного пользователя:
const conversationsUsers = await conversationRepository
.createQueryBuilder("c")
.innerJoinAndSelect("c.attendees", "user", "user.id = :authorId", { authorId })
.getMany();
Будучи далек от того, чтобы стать экспертом по SQL, я думаю, что мне следует создать еще JOIN
одну таблицу с users
таблицей (с псевдонимом, например user.id
,=>> attende_id
, но понятия не имею, как к этому подойти.
Заранее спасибо за любые мысли 🙂
Комментарии:
1. если у вас есть отношение «многие ко многим», вам следует добавить 3-ю таблицу-если вы немного погуглите, вы должны найти некоторые подсказки,
2. Я думаю
type-orm
, что это помогло мне разобраться в этом — он создал такие таблицы, какuser
conversation
иuser_conversations_conversation
. Вы предлагаете, чтобы лучший подход в любом случае состоял в том, чтобы создать его вручную?