{
"name": "TypeError"
"message": "Cannot read property 'tablePath' of undefined",
"stack": "TypeError: Cannot read property 'tablePath' of undefined\n at C:\\working\\Hianfa\\Hianfa\\api\\src\\query-builder\\SelectQueryBuilder.ts:1500:76\n at Array.map (<anonymous>)\n at SelectQueryBuilder.createJoinExpression (C:\\working\\Hianfa\\Hianfa\\api\\src\\query-builder\\SelectQueryBuilder.ts:1462:57)\n at SelectQueryBuilder.getQuery (C:\\working\\Hianfa\\Hianfa\\api\\src\\query-builder\\SelectQueryBuilder.ts:54:21)\n at SelectQueryBuilder.QueryBuilder.getQueryAndParameters (C:\\working\\Hianfa\\Hianfa\\api\\src\\query-builder\\QueryBuilder.ts:392:28)\n at SelectQueryBuilder.<anonymous> (C:\\working\\Hianfa\\Hianfa\\api\\src\\query-builder\\SelectQueryBuilder.ts:1948:40)\n at step (C:\\working\\Hianfa\\Hianfa\\api\\node_modules\\tslib\\tslib.js:136:27)\n at Object.next (C:\\working\\Hianfa\\Hianfa\\api\\node_modules\\tslib\\tslib.js:117:57)\n at C:\\working\\Hianfa\\Hianfa\\api\\node_modules\\tslib\\tslib.js:110:75\n at new Promise (<anonymous>)"
}在尝试使用映射表映射两个表时,我遇到了这个错误。
供应商模型(表1)
@ManyToMany(type => VendorToCategory, vendorToCategory => vendorToCategory.vendor)
// @JoinColumn({name: 'vendor_vendor_category_id'})
public vendorToCategory: VendorToCategory[];供应商类别模型(表2)
@ManyToMany(type => VendorToCategory, vendorToCategory => vendorToCategory.vendorCategory)
@JoinColumn({name: 'vendor_vendor_category_id'})
public vendorToCategory: VendorToCategory[];映射表(供应商到类别)
@ManyToMany(type => Vendor, vendor => vendor.vendorToCategory)
@JoinColumn({ name: 'vendor_id' })
public vendor: Vendor[];
@ManyToMany(type => VendorCategory, vendorCategory => vendorCategory.vendorToCategory)
@JoinColumn({ name: 'vendor_category_id' })
public vendorCategory: VendorCategory[];请帮我解决这个错误!
发布于 2020-08-11 07:51:23
您的问题与@JoinColumn装饰器的错误使用有关;您应该在处理@ManyToMany关系时使用@JoinTable。
因此,不是这样:
@ManyToMany(type => VendorToCategory, vendorToCategory =>
vendorToCategory.vendorCategory)
@JoinColumn({name: 'vendor_vendor_category_id'})
public vendorToCategory: VendorToCategory[];`你应该这样写:
@ManyToMany(type => VendorToCategory, vendorToCategory => vendorToCategory.vendorCategory)
@JoinTable({
name: "vendor_vendor_category_id",
joinColumn: {
name: "vendorCategory",
referencedColumnName: "id"
},
inverseJoinColumn: {
name: "vendor",
referencedColumnName: "id"
}})
public vendor: Vendor[];`当涉及到处理关系时,TypeORM文档并不那么具体,但它们确实提供了一些有用的示例。所以,如果你想要一个详细的答案,可以看看them。
https://stackoverflow.com/questions/60140903
复制相似问题