[英]sequelize - is it possible to use findByPk when Primary key is composite key?
我有 model,稱為 session,具有三個屬性的復合鍵:seesionId、userNameId 和 accountId。 為了創建新記錄,我需要檢查是否已經存在具有相同 userNameId 和 accountId 的 session。
findByPk 的 API: public static async findByPk(param: number | string | Buffer, options: object): Promise
我沒有低估如何將 userNameId 和 accountId 一起傳遞。
SESSION MODEL
export class Session extends Model<Session> implements ISessionModel {
@PrimaryKey
@Default(DataType.UUIDV4)
@AllowNull(false)
@Column(DataType.UUID)
sessionId: string;
@PrimaryKey
@IsUUID(4)
@AllowNull(false)
@Column(DataType.UUID)
accountId: string;
@PrimaryKey
@AllowNull(false)
@Column
userNameId: string;
@AllowNull(false)
@Column
userName: string;
..
..
}
文檔沒有指定執行此操作的方法,但列出了通過 sequelize 查找記錄的方法:(https://sequelize.org/master/manual/model-querying-finders.html )
我不得不使用findOne
而不是findByPk
這是在普通的 javascript 上,我們嘗試在其中找到帶有復合鍵的 model 的記錄:
const res = await db.MyModel.findOne({
where: {
entityOneId: args.entity_one_id,
entityTwoId: args.entity_two_id,
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.