我在find语句中设置where条件,但是条件查询的结果不匹配。
查找查询:
async getRegister() {
const result = await this.registerModel.findOne({
where: {
session: 1,
user: 2,
},
select: ['id', 'created_time'],
});
return result;
}
登记实体:
@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语句:
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) )
我找不到参数集
where: {
session: 1,
user: 2,
},
发布于 2022-10-06 10:21:01
当我使用sql时,我得到了正确的结果。
await this.registerModel.query(
`select id, created_time from register where userId = ${userId} and sessionId = ${sessionId}`
);
发布于 2022-10-06 12:26:50
我已经解决了这个问题。第一次修改注册实体
@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;
}
最后修改了查找查询:
const result = await this.registerModel.findOne({
where: {
user: {
id: userId,
},
session: {
id: sessionId,
},
},
select: ['id', 'created_time'],
});
return result;
https://stackoverflow.com/questions/73961736
复制相似问题