Database 有没有办法在Typerom实体中创建不同连接之间的关系?
我使用TypeForm创建了2个连接,如下所示:Database 有没有办法在Typerom实体中创建不同连接之间的关系?,database,typescript,backend,typeorm,Database,Typescript,Backend,Typeorm,我使用TypeForm创建了2个连接,如下所示: await createConnections([ { name: "conn1", type: "mssql", host: "localhost", port: parseInt(process.env.DB_PORT || "1433"), username: process.env.DB_US
await createConnections([
{
name: "conn1",
type: "mssql",
host: "localhost",
port: parseInt(process.env.DB_PORT || "1433"),
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
logging: true,
entities: [__dirname + "/entities/example/*{.js,.ts}"],
options: {
enableArithAbort: true,
},
},
{
name: "conn2",
type: "mssql",
host: "localhost",
port: parseInt(process.env.DB_PORT || "1433"),
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME1,
logging: true,
entities: [__dirname + "/entities/*{.js,.ts}"],
options: {
enableArithAbort: true,
},
},
]);
我的员工实体在conn1中,用户实体在conn2中。然后我在员工和用户之间设置OneToOne,如:
@ObjectType()
@Entity("Employees")
export class Employee extends BaseEntity {
...
@Field(() => User, { nullable: true })
@OneToOne(() => User, (user) => user.employee)
@JoinColumn({ name: "EmployeeID", referencedColumnName: "id" })
user: User | null = null;
}
@ObjectType()
@Entity({ name: "User" })
export class GMGUser extends BaseEntity {
...
@Field(() => Employee)
@OneToOne(() => Employee, (employee) => employee.user)
@JoinColumn({ name: "id", referencedColumnName: "EmployeeID" })
employee!: Employee;
}
但我仍然得到一个错误:在检查所有连接后,找不到用户#employee的实体元数据,或者找不到员工#User的实体元数据;导入路径和拼写正确。我尝试在每个连接中设置关系,但它们也在工作。但我不知道如何在TypeForm中建立不同连接之间的关系。欢迎提供任何建议或解决方案。当两个实体处于同一连接中时,is.it.working是否正常?我尝试将所有实体置于一个连接中,这似乎没有问题,因为没有显示错误。但我通过一对一的关系得到了零。所有关系在每个连接中都起作用,但在两个连接之间不起作用。我正在寻找一种方法来创建两个不同连接之间的关系。我建议激活两个连接中的日志并发送执行的查询。就我所知,我在定义关系时不使用“joinColumn”。另外,我没有在连接定义中设置实体路径,而是创建了一个实体数组,我在createConnection中发送了这个数组。谢谢你的建议。我使用“joinColumn”的原因是我在现有表上创建了关系,这些表的名称与默认的TypeForm列名不匹配。通过使用joinColumn,我可以指定列名。