ネストされた関係を持つ TypeORM findOne 質問する

ネストされた関係を持つ TypeORM findOne 質問する

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 を使用せずにデータを取得できます。

詳細情報はここ

おすすめ記事