nestjs中typeorm不用在实体中定义多对多这种关系就能连接多个表查询

方法

//导入相关的实体
import { My,Staff } from '../my/entities/my.entity';
import {Identity} from "../my/entities/identity.entity"

// 后台管理获取的数据
    async getAllworksData(data){
        console.log(data,"data")

        let skipNum = data.take *(data.current - 1)
        let pageNum = data.take
        let resData = await this.works.createQueryBuilder("user")//定义的是别名
        .leftJoinAndSelect("user.my","works").
        leftJoinAndMapOne("user.staff",Staff,"staff","user.taskPersonId=staff.staffId").
        leftJoinAndMapOne("staff.identity",Identity,"identity","staff.staffId=identity.staff_id")
        .where("user.state=:state",{state:data.state}).skip(skipNum).take(pageNum)
       .getManyAndCount()
        return {
            code:200,
            resData,
        }

    }

这种方法方便是方便,就是存在嵌套较深的问题

返回结果

{
    "code": 200,
    "resData": [
        [
            {
                "id": 2,
                "content": "今天碰到到的傻逼",
                "image": "[1675933153281.jpg,1675934788823.jpg]",
                "video": "",
                "type": 2,
                "createTime": "2023-02-18T16:37:41.939Z",
                "site": "广西壮族自治区南宁市",
                "userId": 46,
                "worksLimit": 1,
                "examine": 0,
                "sort": "",
                "taskId": "202202217324",
                "teamId": "0",
                "state": "0",
                "taskPersonId": "5",
                "my": {
                    "id": 46,
                    "username": "yaohf",
                    "phone": "18776382313",
                    "createTime": "2023-02-18T13:21:41.882Z",
                    "avator": "1675933153281.jpg",
                    "class": "1",
                    "team": "1"
                },
                "staff": {
                    "staffId": 5,
                    "staffName": "杨颂隆",
                    "idCard": "622922199802190519",
                    "age": "21",
                    "gender": "1",
                    "address": "广东省茂名市七迳镇柏坡村1号",
                    "registerTime": "2023-02-20T06:59:15.876Z",
                    "mailbox": "xiaohua661085@126.com",
                    "relation": "0",
                    "imageUrl": "1676967336981.gif",
                    "phone": "15562519950 ",
                    "identity": {
                        "identityId": 8,
                        "staff_id": 5,
                        "salary": "2000",
                        "power": "5",
                        "employeeNo": "1135520232604",
                        "idenCreateTime": "2023-02-20T08:17:05.547Z",
                        "teamId": "3",
                        "job": "5"
                    }
                }
            }
        ],
        3
    ]
}

有什么更好的方法,可以留言喔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值