Nestjs 如何在TypeForm中限制和跳过相关列
我试图在使用query builder查找时限制相关数据,但我忽略了这个概念 这是我获取员工订单的代码Nestjs 如何在TypeForm中限制和跳过相关列,nestjs,typeorm,Nestjs,Typeorm,我试图在使用query builder查找时限制相关数据,但我忽略了这个概念 这是我获取员工订单的代码 import { getRepository, Repository } from "typeorm"; public async findEmployeeQuery(id : number) { try { let query = await getRepository(Employees) .cr
import { getRepository, Repository } from "typeorm";
public async findEmployeeQuery(id : number) {
try {
let query = await getRepository(Employees)
.createQueryBuilder('employee')
.where('employee.id = :id' , {id})
.leftJoinAndSelect('employee.customers' , 'customers')
.getOne()
const user = query
return user
} catch (error) {
throw error
}
}
现在我想限制每个请求的客户数量,我该怎么做
我尝试了“限制”和“跳过”选项,但只与员工一起使用,而不与关联数据一起使用您必须进行另一个查询以限制客户:
import { getRepository, Repository } from "typeorm";
public async findEmployeeQuery(id : number) {
try {
let user = await getRepository(Employees)
.createQueryBuilder('employee')
.where('employee.id = :id' , {id});
.getOne()
user.customers = await getRepository(Customers)
.createQueryBuilder('customer')
.where('customer.employee= :id' , {user.id});
.limit(10) // here you set limitation you want
.getMany()
return user;
} catch (error) {
throw error
}
}
从“typeorm”导入{getRepository,Repository}
首先在SQL中尝试这样做,以限制使用子查询所需的关系数。但是这个功能真的有必要吗?因为这在很大程度上会对您的绩效产生相当大的影响。您最好从customers表而不是Employees表进行查询。我为客户做了这项工作,效果很好谢谢谢谢我从customers侧做了这项工作,效果很好请记住此方法,以防您有多个客户
leftjoins
,它将帮助您^^好的,我将使用它很抱歉,但它不起作用,因为它限制了员工,我想限制由该员工创建的客户,无论如何,感谢您的帮助
public async findEmployeeQuery(id : number) {
try {
let query = await getRepository(Employees)
.createQueryBuilder('employee')
.where('employee.id = :id' , {id})
.leftJoinAndSelect('employee.customers' , 'customers')
.take(4) //lIMITS its to 4
.skip(5) //offset 5 entitities.
.getOne()
const user = query
return user
} catch (error) {
throw error
}
}