Sequelize - проверьте связанный экземпляр модели с параноидной моделью соединения - PullRequest
0 голосов
/ 29 мая 2020

У меня есть модель User, которая связана с моделью Product через модель Subscription следующим образом:

// User model
User.belongsToMany(models.Product, {
  through: models.Subscription,
  as: 'products',
  foreignKey: 'userId',
  otherKey: 'productId'
})

// Product model
Product.belongsToMany(models.User, {
  through: models.Subscription,
  as: 'users',
  foreignKey: 'productId',
  otherKey: 'userId'
})

// Subscription model
const Subscription = sequelize.define(
  'Subscription',
  {
    // attributes
  },
  {
    paranoid: true
  }
)

В моем контроллере есть следующий код:

if (!(await user.hasProduct(product, { paranoid: false }))) {
  // Do Something only if the user does NOT have the product
}

Однако этот код, похоже, игнорирует параметр { paranoid: false } и генерирует следующее SQL:

SELECT "Product"."id" FROM "Products" AS "Product" INNER JOIN "Subscriptions" AS "Subscription" ON "Product"."id" = "Subscription"."productId" AND ("Subscription"."deletedAt" IS NULL AND "Subscripti
on"."userId" = 5) WHERE ((("Product"."id" = 9)));

Мне нужно, чтобы этот запрос игнорировал часть "Subscription"."deletedAt" IS NULL.

Итак, у меня вопрос, как мне использовать метод .hasProduct и заставить его возвращаться для мягко удаленных элементов в модели параноидального соединения? Или мне нужно использовать .findOne(), чтобы получить экземпляр Subscription отдельно?

...