小编the*_*eNu的帖子

如何在Sequelize中按多对多关系排序?

我通过UserCategory在用户类别之间建立了多对多关系,如下所示。

let user = await User.findAll({
  where: {
    id: req.query.user
  },
  attributes: ["id", "name"],
  include: [
    {
      model: models.Category,
      as: "interests",
      attributes: ["id", "name", "nameTH", "icon"],
      through: {
        model: models.UserCategory,
        as: "user_categories",
        attributes: ["id", "userId", "categoryId", "updatedAt"]
      }
    }
  ],
  // Here, I want to order by updatedAt in user_categories
  order: [["user_categories", "updatedAt", "DESC"]] 
});
Run Code Online (Sandbox Code Playgroud)

如何在UserCategory模型中通过“updatedAt”对结果进行排序?

javascript sql node.js express sequelize.js

7
推荐指数
1
解决办法
1840
查看次数

如何在一对一关系上使用 onDelete: 'CASCADE'

当用户被删除时,我尝试删除用户的个人资料。但它并没有删除个人资料上的任何内容。

用户实体

@Entity()
export class User {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;

    @OneToOne(type => Profile, profile => profile.user, 
              { eager: true, cascade: true, onDelete: 'CASCADE' })
    @JoinColumn()
    profile: Profile;

}
Run Code Online (Sandbox Code Playgroud)

配置文件实体

@Entity()
export class Profile {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    gender: string;

    @Column()
    photo: string;

    @OneToOne(type => User, user => user.profile)
    user: User;

}
Run Code Online (Sandbox Code Playgroud)

我如何删除用户。

const userRepository = connection.getRepository(User);
const user = await userRepository.findOne({ where: {id: 'someuserId'}, relations: ["profile"] });

await user.remove()
Run Code Online (Sandbox Code Playgroud)

用户已被删除,但用户的个人资料上没有任何反应。

谁能解释如何删除一对一的关系?

mysql typescript typeorm nestjs

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

express ×1

javascript ×1

mysql ×1

nestjs ×1

node.js ×1

sequelize.js ×1

sql ×1

typeorm ×1

typescript ×1