Bud*_*get 17 typescript typeorm
我有一个 Singer 实体和一个相关的 Song 实体
歌手实体
export class Singer {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany( type => Song, Song => Song.user )
songs: Song[];
}
Run Code Online (Sandbox Code Playgroud)
歌曲实体
export class Song {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne( type => Singer, Singer => Singer.songs )
singer: Singer;
}
Run Code Online (Sandbox Code Playgroud)
我想Songs
按Singer
名称排序
我搜索了文档和 github 问题,但找不到答案我该如何解决?没有更好QueryBuilder
Sof*_*son 34
我认为没有查询构建器的 typeorm 目前不支持它,目前有一个功能请求打开
使用 QueryBuilder 非常简单:
connection.createQueryBuilder(Song, 'songs')
.leftJoinAndSelect('songs.singer', 'singer')
.orderBy('singer.name', 'ASC')
.getMany();
Run Code Online (Sandbox Code Playgroud)
Sal*_* ED 14
我遇到了同样的问题,我尝试按自定义列排序,但没有查询生成器,因为我正在使用存储库,这是我的解决方案:
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,
});
Run Code Online (Sandbox Code Playgroud)
从TypeORM 0.3.0开始支持这一点:
songRepository.find({
order: {
singer: {
name: "ASC"
}
}
})
Run Code Online (Sandbox Code Playgroud)
尝试实体模型上的默认顺序
https://github.com/typeorm/typeorm/blob/master/sample/sample30-default-order-by/entity/Post.ts
@Entity("sample30_post", {
orderBy: {
title: "ASC",
id: "DESC"
}
})
export class Post {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40467 次 |
最近记录: |