【问题标题】:Spring Hibernate mysql: Field 'id' doesn't have a default value [duplicate]Spring Hibernate mysql:字段'id'没有默认值[重复]
【发布时间】:2020-01-02 20:47:15
【问题描述】:

我知道之前有人问过这个问题,但无法解决问题。 我想通过@Entitiy 类生成一个表。

@Entity
public class Test implements Serializable{
    @Id
    @GeneratedValue long id;

.
.
.
}

在我的应用属性中我得到了:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.show_sql=true

我正在运行 mysql 5.7。问题是创建了表并且 id 被标记为主键。但是 Default 是 NULL 并且 Extra (我期望自动增量)是空的。

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | bigint(20)   | NO   | PRI | NULL    |       |
+----------+--------------+------+-----+---------+-------+

是否有我遗漏的东西或已被设计的东西?

【问题讨论】:

    标签: java mysql spring jpa


    【解决方案1】:

    您的意思是要对 id 字段使用自动增量?如果是,则必须将@GeneratedValue的策略指定为IDENTITY

    @Entity
    public class Test implements Serializable {
    
        @Id 
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private long id;
    
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2021-03-29
    • 2014-11-09
    • 2015-07-19
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多