首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeORM条件查询的结果不匹配

TypeORM条件查询的结果不匹配
EN

Stack Overflow用户
提问于 2022-10-05 14:15:35
回答 2查看 92关注 0票数 -1

我在find语句中设置where条件,但是条件查询的结果不匹配。

查找查询:

代码语言:javascript
运行
复制
  async getRegister() {
    const result = await this.registerModel.findOne({
      where: {
        session: 1,
        user: 2,
      },
      select: ['id', 'created_time'],
    });

    return result;
  }

登记实体:

代码语言:javascript
运行
复制
@Entity('register')
export class Register {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({
    type: 'text',
    nullable: true,
    unique: true,
  })
  no: string;
  ……
  @ManyToOne(type => User, user => user.registers)
  user: User;

  @OneToOne(type => Session)
  @JoinColumn()
  session: Session;
}

格式化的SQL语句:

代码语言:javascript
运行
复制
query: SELECT DISTINCT "distinctAlias"."Register_id" AS "ids_Register_id" FROM (SELECT "Register"."id" AS "Register_id", "Register"."created_time" AS "Register_created_time" FROM "register" "Register" INNER JOIN "session" "Register__Register_session" ON "Register__Register_session"."id"="Register"."sessionId" AND ("Register__Register_session"."deleted_time" IS NULL)  INNER JOIN "user" "Register__Register_user" ON "Register__Register_user"."id"="Register"."userId" AND ("Register__Register_user"."deleted_time" IS NULL) WHERE "Register"."deleted_time" IS NULL) "distinctAlias" ORDER BY "Register_id" ASC LIMIT 1
query: SELECT "Register"."id" AS "Register_id", "Register"."created_time" AS "Register_created_time" FROM "register" "Register" INNER JOIN "session" "Register__Register_session" ON "Register__Register_session"."id"="Register"."sessionId" AND ("Register__Register_session"."deleted_time" IS NULL)  INNER JOIN "user" "Register__Register_user" ON "Register__Register_user"."id"="Register"."userId" AND ("Register__Register_user"."deleted_time" IS NULL) WHERE ( "Register"."deleted_time" IS NULL ) AND ( "Register"."id" IN (7) )

我找不到参数集

代码语言:javascript
运行
复制
where: {
  session: 1,
  user: 2,
},
EN

回答 2

Stack Overflow用户

发布于 2022-10-06 10:21:01

当我使用sql时,我得到了正确的结果。

代码语言:javascript
运行
复制
    await this.registerModel.query(
      `select id, created_time from register where userId = ${userId} and sessionId = ${sessionId}`
    );
票数 0
EN

Stack Overflow用户

发布于 2022-10-06 12:26:50

我已经解决了这个问题。第一次修改注册实体

代码语言:javascript
运行
复制
@Entity('register')
export class Register {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({
    type: 'text',
    nullable: true,
    unique: true,
    comment: '准考证号',
  })
  no: string;

  ……

  @ManyToOne(type => User, user => user.id)
  user: User;

  @ManyToOne(type => Session, session => session.id)
  session: Session;
}

最后修改了查找查询:

代码语言:javascript
运行
复制
    const result = await this.registerModel.findOne({
      where: {
        user: {
          id: userId,
        },
        session: {
          id: sessionId,
        },
      },
      select: ['id', 'created_time'],
    });

    return result;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73961736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档