我有一个Singer实体和一个相关的Song实体
Singer 实体
export class Singer {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany( type => Song, Song => Song.user )
songs: Song[];
}Song 实体
export class Song {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne( type => Singer, Singer => Singer.songs )
singer: Singer;
}我想要所有的Songs都用Singer的名字来订购
我搜索了文档和GitHub问题,但找不到答案,我如何解决这个问题?没有QueryBuilder更好
发布于 2019-09-12 13:39:02
在TypeORM版本0.3.0中,您可以执行以下操作:
repository.find({
order: {
singer: {
name: "ASC"
}
}
})在0.3.0版之前(原始响应)
我认为没有查询生成器的typeorm目前不支持它,目前有一个特征请求打开
但是,对于QueryBuilder,它非常简单:
connection.createQueryBuilder(Song, 'songs')
.leftJoinAndSelect('songs.singer', 'singer')
.orderBy('singer.name', 'ASC')
.getMany();发布于 2021-04-26 09:22:12
我的问题与我试图按自定义列订购的问题相同,但没有查询生成器,因为我使用的是Repository,这是我的解决方案:
let res = await this.trackingRepository.findAndCount({
where: [{ username : Like(`%${searchValue}%`) },
{ action : Like(`%${searchValue}%`) },
{ ip : Like(`%${searchValue}%`) }],
order: {
[sortField]: sortOrder === "descend" ? 'DESC' : 'ASC',
},
skip: (current - 1) * pageSize,
take: pageSize,
});发布于 2022-04-01 11:42:04
这在TypeORM 0.3.0中是支持的
songRepository.find({
order: {
singer: {
name: "ASC"
}
}
})https://stackoverflow.com/questions/57871918
复制相似问题