この記事は公開から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.json
のpaths
を設定してる場合です。
個別指定の場合は特に複数のテーブルへアクセスを行う際にリポジトリだけを追加してデータソースへのエンティティ追加を忘れがちなので注意が必要です。
以上です。