【问题标题】:PersistenceException: ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]PersistenceException: 错误执行 DML bindLog[] 错误[字段 'id' 没有默认值]
【发布时间】:2012-06-14 08:25:13
【问题描述】:

我正在尝试使用 MySQL 和 ebeans 来保存我的任务。当我应用脚本时,我收到此错误:

[PersistenceException: ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]]

在使用 MySQL 作为 DB 之前,它在内存中的 H2 DB 以及文件系统中都可以正常工作...

我该如何解决这个错误?

【问题讨论】:

    标签: mysql playframework


    【解决方案1】:

    刚刚遇到同样的错误。 将 AUTO_INCREMENT 添加到您的 id 字段和进化脚本中的约束。像这样

       create table name (
      id                        bigint not null AUTO_INCREMENT,
      ...
      constraint pk_name primary key (id),
    
    );
    

    现在可以了

    编辑: 如果您在模型中使用 @Id 注释字段“id”,则演变应自动添加 AUTO_INCREMENT 和约束

    【讨论】:

      【解决方案2】:

      我刚刚遇到这个错误,在我的情况下,数据库已经存在,作为我之前设置应用程序的一部分,但一半的表为 id 字段设置了 AI,而另一半没有。

      我不确定为什么会这样,这与我最初创建表格的方式有关。

      无论如何,我需要做的就是使用 MySQL Workbench 来更改没有 AI id 的表并添加 AI 属性。 (作为此过程的一部分,我还必须删除并重新创建一些外键)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-04
        • 1970-01-01
        相关资源
        最近更新 更多