leftJoinAndMapOne
const userRolesQueryList = [
'userRoles.userId = user.id',
'userRoles.isDel = 0',
]
const userRolesCondition = userRolesQueryList.join(' AND ');
// userRolesQueryList => "userRoles.userId = user.id AND userRoles.isDel = 0"
const [data, total] = await getConnection().createQueryBuilder(AdminUserEntity, 'user')
// 在user中添加字段roleTest 通过UserRolesEntity获取仓库 仓库别名 userRoles 搜索条件 userRoles.userId = user.id
// condition 后面可以加parameters
// .leftJoinAndMapMany('user.roleTest', UserRolesEntity, 'userRoles', userRolesCondition, {})
.leftJoinAndMapOne('user.roleTest', UserRolesEntity, 'userRoles', userRolesCondition)
.andWhere(queryCondition, params) // 查询条件
.orderBy({ 'user.createdAt': 'DESC' }) // 排序字段及方式
.skip((page - 1) * pageSize) // 跳过多少数据
.take(pageSize) // 查询多少条数据
.printSql() // 仅仅是打印sql语句,可以不写
.getManyAndCount(); // 查询和返回条数
leftJoinAndMapMany
跟上面的leftJoinAndMapOne好像只有单词的区别 使用方法一致,leftJoinAndMapOne获取匹配到的第一个数据,leftJoinAndMapMany获取匹配到的所有数据
const userRolesQueryList = [
'userRoles.userId = user.id',
'userRoles.isDel = 0',
]
const userRolesCondition = userRolesQueryList.join(' AND ');
// userRolesQueryList => "userRoles.userId = user.id AND userRoles.isDel = 0"
const [data, total] = await getConnection().createQueryBuilder(AdminUserEntity, 'user')
// 在user中添加字段roleTest 通过UserRolesEntity获取仓库 仓库别名 userRoles 搜索条件 userRoles.userId = user.id
// condition 后面可以加parameters
// .leftJoinAndMapMany('user.roleTest', UserRolesEntity, 'userRoles', userRolesCondition, {})
.leftJoinAndMapMany('user.roleTest', UserRolesEntity, 'userRoles', userRolesCondition)
.andWhere(queryCondition, params) // 查询条件
.orderBy({ 'user.createdAt': 'DESC' }) // 排序字段及方式
.skip((page - 1) * pageSize) // 跳过多少数据
.take(pageSize) // 查询多少条数据
.printSql() // 仅仅是打印sql语句,可以不写
.getManyAndCount(); // 查询和返回条数