TypeORMでNo metadata for xxx was foundエラーが出るときの対応

この記事は公開から1年以上経過しています。

TypeScript(4.9.5) + TypeORM(0.3.12)でTypeORMのエンティティを用いてDBアクセスを行ったとき

No metadata for XXX was found

というエラーが発生したため、その対応についての備忘録。


原因

データソースに登録されていないエンティティがある。


対応

使用するエンティティをデータソース初期化処理で登録する。

エンティティ個別指定の場合:

const dataSource = new DataSource({
    entities: [
        TABLE1, XXX
    ],
})

エンティティフォルダ(src/entities/配下)一括指定の場合:

const dataSource = new DataSource({
    entities: [
        "@/entities/**/*.ts"
    ],
})

@/tsconfig.jsonpathsを設定してる場合です。

個別指定の場合は特に複数のテーブルへアクセスを行う際にリポジトリだけを追加してデータソースへのエンティティ追加を忘れがちなので注意が必要です。


以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする