发布
社区首页 >问答首页 >如果配置文件中没有设置实体目录,TypeORM将找不到实体

如果配置文件中没有设置实体目录,TypeORM将找不到实体
EN

Stack Overflow用户
提问于 2018-09-03 19:25:19
回答 9查看 54.1K关注 0票数 26

我使用的是TypeORM和休闲配置文件: ormconfig.json

代码语言:javascript
代码运行次数:0
复制
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "my-secret-pw",
"database": "mytestdb",
}

我的实体文件存储在./src/bar/entity目录中。我总是收到以下错误:

RepositoryNotFoundError:没有找到"myTable“的存储库。看起来这个实体没有在当前的“默认”连接中注册?

当我手动将目录添加到配置文件时,就会找到该实体:

代码语言:javascript
代码运行次数:0
复制
{
...
"entities": ["src/bar/entity/**/*.ts"]
}

我的实体的定义如下:

代码语言:javascript
代码运行次数:0
复制
@Entity('myTable')
export default class MyTable {
    @PrimaryGeneratedColumn()
    public id: number;
    ...

如何允许TypeORM在不手动设置每个目录的配置文件的情况下找到这些实体?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2018-09-03 19:42:52

您所描述的最常见的情况是有单独的entities目录,其中只包含实体声明。

代码语言:javascript
代码运行次数:0
复制
{
...
"entities": ["src/bar/entities/**/*.ts"]
}

另一种办法是分别进口每个实体:

代码语言:javascript
代码运行次数:0
复制
import {User} from "./payment/entity/User";
import {Post} from "./blog/entity/Post";

{
...
"entities": [User, Post]
}
票数 32
EN

Stack Overflow用户

发布于 2019-09-27 07:14:31

对我来说,它还有助于将src目录包含到ormconfig.json中。

代码语言:javascript
代码运行次数:0
复制
  "entities": [
    "dist/**/*.entity{.ts,.js}",
    "src/**/*.entity{.ts,.js}"
  ],
票数 19
EN

Stack Overflow用户

发布于 2019-07-21 20:24:31

对我来说,答案是{ ... entities: [join(__dirname, '/../**/**.entity{.ts,.js}')], }

我在这里找到了https://github.com/nestjs/nest/blob/master/sample/05-sql-typeorm/src/app.module.ts

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52155315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档