Singerエンティティと関連するSongエンティティがあります
歌手エンティティ
export class Singer {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany( type => Song, Song => Song.user )
songs: Song[];
}
曲のエンティティ
export class Song {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@ManyToOne( type => Singer, Singer => Singer.songs )
singer: Singer;
}
すべてのSongs
をSinger
の名前で注文したい
ドキュメントとgithubの問題を検索しましたが、答えが見つかりません。どうすれば解決できますか? QueryBuilder
なしでより良い
lodash のようなライブラリにタスクを委任してメモリ内で順序付けを行う場合は、クエリビルダーを使用する必要はありません。
この方法でも、EntityManager
またはRepository
を使用してデータをクエリできます。
// first fetch the song and include (=join) the
// singer by the foreign key "singer"
var queryResult = await this.entityManager.find(Song, {
relations: ['singer'],
});
// then use a library like lodash to do the ordering
const songsSortedBySinger = _.orderBy(queryResult, song => song.singer.name);
さらに読むために:
relations
findオプションは ここに記載 です。