开源工具技巧nestjs

Typeorm 字段名驼峰转下划线命名

2019-01-16  本文已影响119人  stormKid

官网上面没有直接提示和说明如何驼峰转下划线,就算是查询API,和下载demo 里面都没有详细提供参考,特此根据使用经验,开辟此文章来完成对此方式详细说明。

1、Column

    @Column()
    abc_abc;

    @Column({name: 'abc_abc'})
    abcAbc;

直接写下划线命名即可在数据库中显示为下划线名称,如果讲究十分规范的话,请使用下面的写发,指定name为下划线名称。

2、OneToOne && ManyToOne

    @OneToOne(……)
    @JoinColumn({ name: 'abc_abc'})
    foriegnObj: ForiegnObj;

    @ManyToOne(……)
    @JoinColumn({ name: 'abc_abc'})
    foriegnObj: ForiegnObj;

OneToOne和 ManyToOne在同样的条件下会指定对应的外键,直接通过JoinColumn的name属性来控制外键名称。

3、ManyToMany

    @ManyToMany(......)
    @JoinTable({name:'tableName' 
                        , joincolumn:{
                                    name:'abc_abc'
                                    referencedColumnName:'thistable_id'
                               }
                        , inverseJoinColumn:{
                                    name:'def_def'
                                    referencedColumnName:'pointtable_id'
                               }})

    foriegnObjs: ForiegnObj[];

多对多属性进行字段编辑的时候一定要注意以下几点:
1、joincolumn 是本表内部成员映射,其referencedColumnName 一定指向本表主键ID。
2、inverseJoinColumn 是ManyToMany 映射对象表的属性,这里一定指向其表主键ID。
3、两表主键ID一定要类型、长度保持一致,不然会报 "ERROR 1215 (HY000): Cannot add foreign key constraint" 错误。

上一篇下一篇

猜你喜欢

热点阅读