cs3230524
V2EX  ›  Node.js

TypeOrm 使用 PrimaryGeneratedColumn 注解报错。。

  •  
  •   cs3230524 · Nov 23, 2020 · 3952 views
    This topic created in 1999 days ago, the information mentioned may be changed or developed.

    就很普通的一个实体

    @Entity()
    export class Spm {
        @PrimaryGeneratedColumn()
        //@PrimaryGeneratedColumn("uuid") //这个没问题,可以正常运行
        id: number;
        @Column()
        type: string;
    }
    
    

    然后执行后报这个错误,并且插入了一条 id 为 0 的数据,重复执行依旧插入 0,而不是 1 。

    Error: Cannot update entity because entity id is not set in the entity.
    

    这个错误在这里 170 行报出:

    //https://github.com/typeorm/typeorm/blob/c4a36da62593469436b074873eba186f0f8b990d/src/query-builder/ReturningResultsEntityUpdator.ts#L119-L130
    

    同样的代码在 windows 是没问题的,所以我怀疑是系统环境问题?

    目前的系统环境:

    
    | Operating System    | MacOS 10.15.4
    | Node.js version     | v10.15.3 
    | @nestjs/typeorm     | v^7.1.5
    | Typescript version  | v^3.7.4 
    | TypeORM version     | v^0.2.29 
    
    
    

    求大神救救...我人都傻了。

    9 replies    2020-12-26 16:36:21 +08:00
    xiangwan
        1
    xiangwan  
       Nov 23, 2020 via Android
    检查下主键数据类型
    Zchary
        2
    Zchary  
       Nov 24, 2020 via iPhone
    生成 schema 了吗?数据库查下
    cs3230524
        3
    cs3230524  
    OP
       Nov 24, 2020
    @Zchary 我数据都插进去了肯定生成了啊
    Zchary
        4
    Zchary  
       Nov 24, 2020 via iPhone
    指定 auoto increment 试试
    cs3230524
        5
    cs3230524  
    OP
       Nov 24, 2020
    @Zchary 我都试遍了 @PrimaryGeneratedColumn('increment')也是不行的,只有 uuid 能用。同样的代码在 windows 就没问题,调试跟源码找不到他的 bug 。。。哎,这都啥破框架啊,连个 demo 都跑不了,issue 也没人管。我很无语。
    cs3230524
        6
    cs3230524  
    OP
       Nov 24, 2020
    这写一半了也不可能换,怕的就是生产环境出这样的问题我就要倒大霉了
    hongweiliuruige
        7
    hongweiliuruige  
       Nov 24, 2020
    不穿参数默认就是 increment 数值自增,你启动时还会插数据?,好好看看你代码把
    ccsulzf0627
        8
    ccsulzf0627  
       Dec 23, 2020
    同样的问题,我在测试环境没有这个问题,但是去生产就有,首先我的数据 id 是自增的,但是在 entity 的时候写成了 PrimaryColumn,然后在生产就报错了,但是换成 PrimaryGeneratedColumn 就没问题了
    cs3230524
        9
    cs3230524  
    OP
       Dec 26, 2020
    @ccsulzf0627 我是数据库版本问题,换了就没问题了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3042 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:54 · PVG 16:54 · LAX 01:54 · JFK 04:54
    ♥ Do have faith in what you're doing.