TypeORM でネストされた検索クエリを実行する際に問題が発生しています。基本コードは次のとおりです。
const { completionId } = req?.params;
const user = req.user;
const retrievedCompletion = await getRepository(
CompletionGoogleSearch
).findOne({
relations: ['run', 'run.user'],
where: {
id: completionId,
// run: { user: { id: user.id } }, // This is the code that breaks the function
},
});
console.log(retrievedCompletion?.run.user.id);
console.log(user.id);
何も問題はないように見えますし、クエリは実行されるはずです。何が間違っているのか、何かお分かりですか? クエリビルダー クエリを記述するか、生の SQL を使用することでこの問題を回避できることはわかっています。コードに欠陥があるかどうか知りたいだけです。
ベストアンサー1
typeormはネストされたオブジェクトを使用する機能を追加しました
userRepository.find({
relations: {
profile: true,
photos: true,
videos: {
videoAttributes: true,
},
},
});
この方法では、eager を使用せずにデータを取得できます。
詳細情報はここ