我正在尝试在 TypeORM 中建立多态关系,我需要在其中设置自定义连接列。具体来说,我想使用两列:
record_id
和record_type
。 record_type
列中的值应该是常量并与父实体的名称匹配。
以下是相关代码片段:
@Entity({ name: 'attachments' })
export class Attachment {
...
@ManyToOne(() => Advertisement, (advertisement) => advertisement.attachments)
@JoinColumn([
{ name: 'record_id', referencedColumnName: 'id' },
{ name: 'record_type', value: 'Advertisement' },
])
advertisement: Advertisement
@ManyToOne(() => Blog, (blog) => blog.attachments)
@JoinColumn([
{ name: 'record_id', referencedColumnName: 'id' },
{ name: 'record_type', value: 'Blog' },
])
blog: Blog
}
这里的挑战是 TypeORM 不直接支持
@JoinColumn
的静态值。因此,语法 { name: 'record_type', value: 'Blog' }
是不正确的。是否有任何解决方法可以解决此限制?非常感谢您的见解。
谢谢你。
@OULAHTAK 您找到解决方法了吗? 我也面临着同样的问题。
PS:我没有足够的声誉来发表评论:(