Spring Hibernate mysql:字段“ id”没有默认值

时间:2019-08-29 14:34:10

标签: java mysql spring jpa

我知道曾有人问过这个问题,但无法解决问题。 我想通过@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    |       |
+----------+--------------+------+-----+---------+-------+

我有什么想念的东西吗?

1 个答案:

答案 0 :(得分:1)

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

@Entity
public class Test implements Serializable {

    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

}