
就很普通的一个实体
@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 求大神救救...我人都傻了。
1 xiangwan 2020-11-23 23:52:25 +08:00 via Android 检查下主键数据类型 |
2 Zchary 2020-11-24 09:04:38 +08:00 via iPhone 生成 schema 了吗?数据库查下 |
4 Zchary 2020-11-24 12:15:56 +08:00 via iPhone 指定 auoto increment 试试 |
5 cs3230524 OP @Zchary 我都试遍了 @PrimaryGeneratedColumn('increment')也是不行的,只有 uuid 能用。同样的代码在 windows 就没问题,调试跟源码找不到他的 bug 。。。哎,这都啥破框架啊,连个 demo 都跑不了,issue 也没人管。我很无语。 |
6 cs3230524 OP 这写一半了也不可能换,怕的就是生产环境出这样的问题我就要倒大霉了 |
7 hongweiliuruige 2020-11-24 18:40:34 +08:00 不穿参数默认就是 increment 数值自增,你启动时还会插数据?,好好看看你代码把 |
8 ccsulzf0627 2020-12-23 21:44:13 +08:00 同样的问题,我在测试环境没有这个问题,但是去生产就有,首先我的数据 id 是自增的,但是在 entity 的时候写成了 PrimaryColumn,然后在生产就报错了,但是换成 PrimaryGeneratedColumn 就没问题了 |
9 cs3230524 OP @ccsulzf0627 我是数据库版本问题,换了就没问题了。 |