TypeORM不在列上添加外键

时间:2019-07-08 04:01:15

标签: orm typeorm

这是我第一次在项目中使用typeorm

我正在尝试在entity上添加外键,但是当它作为表生成时。我看不到绑定到该列的关系/外键。

这是示例实体:

Locale.ts

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity('Locale')
export class Locale {

    @PrimaryGeneratedColumn()
    ID: number;

    @Column()
    Name: string;

    @Column()
    LanguageCode: string;
}

TranslationTitle.ts

import { Locale } from './../locale/Locale';
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm";

@Entity('TranslationTitle')
export class TranslationTitle {

    @PrimaryGeneratedColumn()
    ID: number;

    @Column()
    CreatedBy: string;

    @Column()
    CreatedDate: string;

    @Column()
    Status: boolean;

    @Column()
    ModifiedBy: string;

    @Column()
    ModifiedDate: string;

    @Column()
    Text: string;

    @Column()
    @OneToMany(type => Locale, locale => locale.ID)
    Locale: number;

}

因此,我期望在此代码上将Locale列用作ID表的Locale字段的外键。

但是当我查看生成的表时,两个字段之间没有任何关系。

enter image description here enter image description here

我在这里想念东西吗?

1 个答案:

答案 0 :(得分:0)

您的TranslationTitle最多具有1个语言环境,因此它是ManyToOne映射,而不是OneToMany(1个语言环境的许多标题)。另外,您的字段定义不正确,因为它不应为数字,而应为语言环境类型。

@Column()
@ManyToOne(type => Locale, {
    nullable: true
})
Locale: Locale;