Сохранение связи Many to Many в Post запросе PostgreSQL TypeOrm NestJS
Всем доброго времени суток! Я новенький в TypeOrm и реляционных базах, поэтому возник следующий вопрос:
Есть такая JSON модель данных, которая приходит с админ панели Post запросом
{
"id": 0,
"imageUrl": "...imagePath",
"title": "Some title",
"types": [
0,
1
],
"sizes": [
26,
30,
40
],
"price": 803,
"category": 2,
"rating": 4
},
Соответственно связи между типами и размерами предмета многие ко многим ( У каждого предмета есть несколько типов и размеров, и у каждого типа и размера есть множество предметов). У меня есть соответствующий ItemEntity:
@Entity('item')
export class ItemEntity extends Base {
@Column()
title: string
@Column()
price: number
@Column()
rating: number
@Column({ name: 'image_url_path' })
imageUrl: string
@Column({ default: true, name: 'is_available' })
isAvailable: boolean
@ManyToMany(() => TypeEntity, type => type.item)
@JoinTable()
types: number[]
@ManyToMany(() => SizeEntity, size => size.item)
@JoinTable()
sizes: number[]
@ManyToOne(() => CategoryEntity, category => category.item)
category: number
}
SizeEntity аналогичный TypeEntity:
@Entity('size')
export class SizeEntity extends Base {
@Column()
title: number
@ManyToMany(() => ItemEntity, item => item.sizes)
item: ItemEntity[]
}
И соответствующий сервис, где мы инжектим репозиторий
@Injectable()
export class ItemService {
constructor(
@InjectRepository(ItemEntity)
private readonly ItemRepository: Repository<ItemEntity>,
) {}
Вопрос заключается в том, что я не очень понимаю как написать в сервисе функцию createItem, которая вешается на Post запрос с сохранением типов и размеров, при связи многие ко многим, ведь взаимодействуем мы с базой данных через репозиторий в сервисе, а в ItemRepository нет соответствующих столбцов, а промежуточная таблица создается автоматически при помощи декоратора @JoinTable() и заижектить в сервисе я ее не могу. Документация и примеры на GitHub от TypeOrm не смогли мне помочь в этой проблеме...(