typeORM queryBuilder getting fail Cannot read properties of undefined (reading 'databaseName'

68 Views Asked by At

creating querybuilder shows error , cant't figure it . what is happening

async findAllMetaData(q: any, offset: number = 0, limit: number = 10): Promise<ProductMetaDataEntity[]> {
    const qb = this.productMetaDataReposistory
      .createQueryBuilder('pm')
      .leftJoinAndSelect('pm.metaKey', 'metaKey')
      .take(limit)
      .skip(offset);
    qb.orderBy('pm.created_at', 'DESC');
    const metaData = await qb.getMany();
    return metaData;
  } 



@Entity('product_metadata')
export class ProductMetaDataEntity {

  @PrimaryGeneratedColumn({ name: 'id' })
  id: number;

  @Column({ name: 'meta_value' })
  metaValue: string;

  @Column({ name: 'meta_order', nullable: true })
  metaOrder: number;
 

  @ManyToOne(type => MetaKeyEntity, metaKey => metaKey.id, { eager: true, cascade: false })
  @JoinColumn({ name: 'metakey_id' })
  metaKey: MetaKeyEntity;
}

query builder showing error TypeError: Cannot read properties of undefined (reading 'databaseName')

and after joining somehow by this

async findAllMetaData(q: any, offset: number = 0, limit: number = 10): Promise<ProductMetaDataEntity[]> {
    const qb = this.productMetaDataReposistory
      .createQueryBuilder('pm')
      .leftJoin('pm.metaKey', 'metaKey')
      .take(limit)
      .skip(offset);
    qb.orderBy('pm.created_at', 'DESC');
    const metaData = await qb.getMany();
    return metaData;
  } 

i am getting only this data (no metakey details inside)

        "id": 165,
        "metaValue": "metavalue",
        "metaOrder": 1,
        "createdAt": "2023-12-14T12:17:52.071Z",
        "updatedAt": "2023-12-14T12:17:52.071Z"
    },


expectation is 

 {
        "id": 1,
        "metaValue": "test meta value",
        "metaOrder": null,
        "createdAt": "2024-01-08T11:22:37.796Z",
        "updatedAt": "2024-01-08T11:22:37.796Z",
        "metaKey": {
            "id": 1,
            "name": "Test",
            "image": "",
            "slug": "Test",
            "type": "test",
            "createdAt": "2024-01-08T11:21:55.017Z",
            "updatedAt": "2024-01-08T11:21:55.017Z"
        }
    },
    

expectation is , needing metakey data inside also

0

There are 0 best solutions below