当前位置: 首页 > 知识库问答 >
问题:

不同步的类型化实体插入

百里海超
2023-03-14

我正在使用TypeORM和NestJs处理现有的MySql数据库。有一个共享表,我必须将记录插入其中,它有一个自动递增的主键。由于该表是共享的,因此已禁用“同步”。

当我使用@PrimaryGeneratedColumn装饰器设置TypeForm实体时,我得到一个错误,指出该列“没有默认值”。如果我将decorator更改为@Column,那么我将收到一个关于没有主键的错误。

谁能告诉我应该如何设置我的TypeORM实体,以便我可以将记录插入到具有自动递增列的表中,其中同步被关闭?

使现代化

以下是MySql表DDL的摘录:

CREATE TABLE IF NOT EXISTS tIntegrationItem (
    IntegrationItemID       mediumint AUTO_INCREMENT    NOT NULL,
    Description             varchar(200)                NOT NULL,
    CreatedDateTime         dateTime                    NOT NULL,
    PRIMARY KEY (IntegrationItemID)
) ENGINE=InnoDB;

以下是该实体的摘录:

@Entity({ name: "tIntegrationItem" })
export class IntegrationItem {
    @PrimaryGeneratedColumn()
    integrationItemId : number;

    @Column()
    description : string;

    @Column()
    createdDateTime  : Date = new Date();
}

以下是我收到的错误:

[Nest]26248-01/22/2020,2:18:43 PM[ExceptionHandler]ER_NO_DEFAULT_FOR_FIELD:字段'IntegrationItemID'没有默认值18075ms QueryFailedError:ER_NO_DEFAULT_FOR_FIELD:字段'IntegrationItemID'没有默认值

共有2个答案

曹子平
2023-03-14

我将数据库配置切换到不同的数据库,应用程序运行良好。我将应用程序配置为与MySql的本地实例一起工作,该实例没有正确设置。不过,我不知道确切的原因。

使现代化

从那以后,我了解到我的本地数据库与服务器实例不匹配。设置时,主键列没有设置为自动递增。*smh*

周洋
2023-03-14

问题可能与列名有关。

integrationItemId:编号

IntegrationItemID

 类似资料:
  • 呵呵, 我试图使用NestJS TypeORM为一种电子商务网站构建一个后端。 我需要我的订单和产品表之间的m: n关系。然而,因为我需要在透视表内的一些自定义字段,我查了typeorms留档,如上所述,我需要创建一个新的实体,我已经做了。现在我得到一个错误启动我的NestJS应用程序: 我的产品。实体ts: 我的产品订购了。实体ts 我的order.entity.ts 我的目录结构: 我的应用程

  • 本文向大家介绍PHP 不同类型的序列化,包括了PHP 不同类型的序列化的使用技巧和注意事项,需要的朋友参考一下 示例 生成值的可存储表示形式。 这对于存储或传递PHP值而不丢失其类型和结构很有用。 要再次将序列化的字符串转换为PHP值,请使用unserialize()。 序列化字符串 序列化双精度 序列化浮点数 浮点数被序列化为双打。 序列化整数 序列化布尔值 序列化null 序列化数组 序列化对

  • 我有一个特征Foo,具体类型a和B都由特征Foo限定。我想返回一个

  • 我在代码中偶然发现了一个奇怪的bug。以前是有效的,但现在有时也有效。 我正在使用EF6编辑具有某些关系的实体。为了不编辑关系,我“附加”了它们(参见示例代码)。 我编辑了这些名字以保持简单。 以下行 抛出此错误: 附加类型为“C”的实体失败,因为相同类型的另一个实体已具有相同的主键值。如果图形中的任何实体具有冲突的键值,则在使用“Attach”方法或将实体状态设置为“Unchanged”或“Mo

  • 虚拟机软件你用的是 Virtualbox,在虚拟机上安装了 virtualbox guest addition 以后,你可以配置虚拟机使用 Virtualbox 类型的共享目录。这种类型的共享目录存在性能问题,如果网站应用只有少量文件还可以,如果文件数量太多,在这种类型的共享目录上运行的网站会非常慢。 这种类型的共享目录还有个 bug,你在虚拟机上配置的网站运行环境如果使用了 NGINX,你得配置

  • Windows 用户可以使用 SMB 这种类型的同步目录。文档上说使用这种类型的共享目录需要在虚拟机上安装 smbfs 或 cifs,Vagrant 应该会自动为你安装好。 不过我测试的结果是并没有安装好挂载 SMB 类型同步目录需要的这些东西。 我用的镜像是 centos/7,在虚拟机里没有搜索到 smbfs,但找到了 cifs-utils ,所以先登录到虚拟机,然后手工安装一下这个 cifs-