簡體   English   中英

sequelize - 當主鍵是復合鍵時可以使用 findByPk 嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM