如何解决如何根据关联条件检索数据
我有一个具有OneToMany关系的“产品和图像”实体,其中一个产品可能有很多图像。
但是图像可以删除。我没有从表中删除数据,而是禁用了它,添加了一个名为“ deleted”的布尔列。然后,如果删除了产品图片,查询将返回没有图片的产品。
当产品有图像时,我进行了下一个查询,该查询可以正常工作,但是如果图像被删除,我不知道如何忽略它。
**我的查询**
const [ products,count ] = await this.productRepo
.createQueryBuilder('product')
.innerJoinAndSelect('product.images','image')
.where([{ name: Like(`%${terms}%`) },{ description: Like(`%${terms}%`) },{ code: Like(terms) }])
.orderBy('product.' + params.orderBy,params.orderMode)
.offset(params.skip)
.limit(params.take)
.getManyAndCount()
return { products,count }
**图片实体**
@Entity()
export class Image extends BaseEntity {
@Column()
name: string
@Column({ default: false })
deleted: boolean
@ManyToOne(() => Product,product => product.images) product: Product[];
}
**产品实体**
export class Product extends BaseEntity {
@Column({ length: 20 })
code: string
@OneToMany(() => Image,image => image.product) images: Image[]
}
解决方法
在where子句中没有看到对新删除的列的引用。我希望在查询中出现类似{delete:value}的内容。
.where([{ name: Like(`%${terms}%`) },{ description: Like(`%${terms}%`) },{ code: Like(terms) }])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。