问题描述
假设我在数据库 A 中有一个产品实体链接到数据库 B 中的增值税实体。 这两个数据库位于不同的服务器中。
目的是从 graphql 端点获取数据。
我首先尝试在 product 中定义一个 vatId 并定义一个与 Vat 类的关系。我的目标是使用另一个连接从解析器中的 db B 获取 Vat 并将其链接到产品。
问题是两个 Vat 类型不对应,我在 Typescript 中有类型问题。
我认为我们不能从不同的连接链接 2 个实体,因为在尝试生成迁移时,TypeOrm 找不到另一个实体。
我认为最好的办法是定义一个 Vat 接口并将其链接到产品中,但我不知道如何去做。
您有什么建议吗?
您的帮助将不胜感激。
最好的问候。
解决方法
你是对的,TypeORM 允许建立不同的 DB 连接,但是不能链接实体,因为它不明白从哪个连接获取它们(现在它只是 @Entity({ database: "DBNAME" }) 支持).
最好的方法是建立接口并通过实体的构造函数传递vat。
例如:
@Entity()
export class Product {
vat?: VatInterface
constructor(vat: VatInterface) {
this.vat = vat
}
}
单独:
@Entity()
export class Vat implements VatInterface {
// specify all entity fields here and in interface for Product entity to use
}