TypeORM(MySQL)"/>
TypeORM(MySQL)
我有 2 个具有以下关系的实体,
用户
@OneToMany(() => Photo, (photo) => photo.user)
photos: Photos[];
相片
@ManyToOne(() => User, (user) => user.photos)
@JoinColumn({ name: 'user_id' })
user: User;
我在以下查询中使用这些实体。预期结果是我收到前 10 个用户的照片。但是,除非我将
photos.id
(照片实体的PK)添加到所选字段列表中,否则此查询会返回丢失的照片。
const users = await userRepo
.createQueryBuilder('user')
.leftJoin('user.photos', 'photos')
.select([
'user.id',
'photos.url',
'photos.timestamp',
])
.take(10).getMany();
回答如下:
使用实体管理器,然后以这种方式重构您的查询。
const users = await entityManager
.createQueryBuilder(User, 'user')
.leftJoinAndSelect('user.photos', 'photos')
.select('user')
.addSelect([
'photos.url',
'photos.timestamp',
])
.take(10).getMany();
更多推荐
TypeORM(MySQL)
本文发布于:2024-05-13 15:57:09,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
- 上一篇: idea springboot docker 私有仓库联动
- 下一篇: java 保龄球游戏开发
发布评论