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