Так что я боролся с этим в течение некоторого времени, у меня есть много-много вариантов в моей кодовой базе. Между пользователем и шансами. Я хочу, чтобы пользователь мог добавлять коэффициенты
Элемент пользователя:
@Entity()
@Unique(['username'])
export class User extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
username: string;
@Unique(['email'])
@Column()
email: string;
@Column()
password: string;
@Column({ nullable: true })
customerId: string;
@ManyToMany(type => Odds, odds => odds.user)
@JoinTable()
odds: Odds[];
@Column()
salt: string;
async validatePassword(password: string): Promise<boolean> {
const hash = await bcrypt.hash(password, this.salt);
return hash === this.password;
}
}
Элемент коэффициентов:
@Entity()
export class Odds extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
hometeam: string;
@Column()
awayteam: string;
@Column()
hometeamLogo: string;
@Column()
awayteamLogo: string;
@Column()
bet: string;
@Column({ type: 'real' })
value: string;
@Column()
stake: number;
@Column({ type: 'real' })
bookieOdds: string;
@ManyToMany(type => User, user => user.odds)
user: User[];
}
Когда я пытаюсь добавить отношение, подобное этому
async addOddsToUser(user: User, oddsId: number): Promise<void> {
const id = user.id;
const userDB = await this.userRepository.findOne({ id });
const odds = await this.oddsRepository.findOne({ id: oddsId });
userDB.odds = [odds];
userDB.save();
}
В ассоциативной таблице это действительно добавляет отношение в первый раз, но если я добавляю еще одно, оно переопределяет первое отношение, я также пробовал userDB.odds.pu sh (шансы); который не работает.
Буду признателен за любую помощь!