nestjsx / crud

NestJs CRUD for RESTful APIs
https://github.com/nestjsx/crud/wiki
MIT License
4.04k stars 533 forks source link

Syntax error in postgress #743

Open Zydnar opened 2 years ago

Zydnar commented 2 years ago

Code

LocalUserEntity side:

@OneToOne(() => BDOUserEntity, bdo => bdo.localUser)
  @JoinTable()
  BdoUser: BDOUserEntity;

BdoUserEntity side:

@OneToOne(()=> LocalUserEntity, user => user.BdoUser)
  localUser: LocalUserEntity;

Query is build using TypeOrmCrudService:

const userContext = await this.localUserService.findOne({email: decodedPayload.email}, {
      join: {
        alias: 'c',
        leftJoinAndSelect: {
          BdoUser: 'c.BdoUser',
        },
      }
    });

Problem

Invalid query (join on nothing):

query failed: SELECT DISTINCT "distinctAlias"."c_id" as "ids_c_id" FROM (SELECT "c"."id" AS "c_id", "c"."email" AS "c_email", "c"."name" AS "c_name", "c"."password" AS "c_password", "c"."twoFactorKey" AS "c_twoFactorKey", "c"."localRoleName" AS "c_localRoleName",
"BdoUser"."id" AS "BdoUser_id", "BdoUser"."username" AS "BdoUser_username", "BdoUser"."password" AS "BdoUser_password", "BdoUser"."roleBDORole" AS "BdoUser_roleBDORole" FROM "local-user" "c" LEFT JOIN "bdo-user" "BdoUser" ON  WHERE "c"."email" = $1) "distinctAlias
" ORDER BY "c_id" ASC LIMIT 1 -- PARAMETERS: ["example@domain.com"]

error: error: syntax error at or near "WHERE"

Enviroment

{
    "@admin-bro/express": "^3.1.0",
    "@admin-bro/nestjs": "^1.1.0",
    "@admin-bro/typeorm": "^1.4.0",
    "@nestjs-modules/mailer": "^1.6.0",
    "@nestjs/cli": "^8.0.0",
    "@nestjs/common": "^8.0.0",
    "@nestjs/config": "^1.0.1",
    "@nestjs/core": "^8.0.0",
    "@nestjs/jwt": "^8.0.0",
    "@nestjs/microservices": "^8.0.6",
    "@nestjs/passport": "^8.0.0",
    "@nestjs/platform-express": "^8.0.0",
    "@nestjs/schematics": "^8.0.0",
    "@nestjs/serve-static": "^2.2.2",
    "@nestjs/swagger": "^5.0.8",
    "@nestjs/testing": "^8.0.0",
    "@nestjs/typeorm": "^8.0.2",
    "@nestjsx/crud": "^5.0.0-alpha.3",
    "@nestjsx/crud-typeorm": "^5.0.0-alpha.3",
    "@types/authenticator": "^1.1.0",
    "@types/bcryptjs": "^2.4.2",
    "@types/compression": "^1.7.1",
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.13",
    "@types/jest": "^26.0.24",
    "@types/jsdom": "^16.2.13",
    "@types/node": "^16.0.0",
    "@types/pug": "^2.0.5",
    "@types/supertest": "^2.0.11",
    "@typescript-eslint/eslint-plugin": "^4.28.2",
    "@typescript-eslint/parser": "^4.28.2",
    "admin-bro": "^3.0.0",
    "authenticator": "^1.1.5",
    "axios": "^0.21.1",
    "bcryptjs": "^2.4.3",
    "class-transformer": "^0.4.0",
    "class-validator": "^0.13.0",
    "compression": "^1.7.4",
    "cors": "^2.8.5",
    "eslint": "^7.30.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-prettier": "^3.4.0",
    "express": ">=4.16.4",
    "express-formidable": "^1.2.0",
    "express-session": ">=1.15.6",
    "hsts": "^2.2.0",
    "html-pdf-node": "^1.0.7",
    "ienoopen": "^1.1.1",
    "jest": "27.0.6",
    "jest-snapshot": "^27.0.6",
    "jimp": "^0.16.1",
    "node-fetch": "^2.6.1",
    "jsdom": "^17.0.0",
    "node-xlsx": "^0.17.1",
    "nodemailer": "^6.6.3",
    "oazapfts": "^3.5.0",
    "openapi-types": ">=7",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "pg": "^8.7.1",
    "prettier": "^2.3.2",
    "pug": "^3.0.2",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^7.2.0",
    "servertiming": "^1.5.0",
    "supertest": "^6.1.3",
    "swagger-ui-express": "^4.1.6",
    "ts-jest": "^27.0.3",
    "ts-loader": "^9.2.3",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "^3.10.1",
    "typeorm": "^0.2.36",
    "typescript": "^4.3.5",
    "webpack": "^5.0.0",
    "x-xss-protection": "^2.0.0"
  }

Node v14.17.3 platform: windows 10 x64