根据https://www.npmjs.com/package/sequelize-typescript ,我正在尝试使用 OneToOne 关联构建一个新实例
模型/测量.ts:
@Table({ tableName: "measure" })
export class Measure extends Model {
...
// Token
@ForeignKey(() => Token)
@Column({ type: DataType.INTEGER, allowNull: false, unique: true })
id_token!: number
@BelongsTo(() => Token)
token!: Token
}
模型/令牌.ts:
@Table({ tableName: "token" })
export class Token extends Model {
...
// Measure
@HasOne(() => Measure)
measure: Measure
}
我的续集实例:
export const sequelize: Sequelize = new Sequelize({
...
repositoryMode: true,
})
sequelize.addModels([Token, Measure])
export const tokenRepository = sequelize.getRepository(Token)
export const measureRepository = sequelize.getRepository(Measure)
现在我想使用现有的 Token 创建一个新的 Measure 实例:
const token = await tokenRepository.findOne({where: {value: value}})
...
console.log(token.isNewRecord) // false
const measure = measureRepository.build({...params, token: token}, {include: [{model: tokenRepository}]})
console.log(measure.token.isNewRecord) // true
await measure.save() // it try to insert an new token here
Sequelize 尝试插入新标记,而不是仅插入度量。我的错误在哪里?