Java JPA GenerationType.Auto值始终为null

我在同一个项目中有几个类,其中id始终是自动生成的。 但是在这种特定情况下,我的id值始终为null。 我真的想知道出了什么问题,因为经过一些改变后它停止了工作。 并将其与其他类进行比较,代码似乎是相同的。

package com.checkin.model.entity; import javax.persistence.*; @Entity public class Checkin { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(nullable = false) private String date; public Checkin(){ } public Checkin(String date){ this.date = date; System.out.println(this.id); System.out.println(this.getId()); } public Long getId() {return id;} public void setId(Long id) {this.id = id;} public String getDate() {return date;} public void setDate(String date) {this.date = date;} } 

这是保存对象的存储库:

 package com.checkin.model.repository; import com.checkin.model.entity.Checkin; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository("checkinRepository") public interface CheckinRepository extends CrudRepository { Checkin findById(Long id); } 

最后这是我从Postman得到的结果

在此处输入图像描述

Generation类型AUTO设置底层数据库以生成ID http://docs.oracle.com/javaee/6/api/javax/persistence/GenerationType.html#AUTO

在这种情况下,您要检查的是H2数据库id列是否具有生成ID的属性。 我猜它没有。 我自己也不使用AUTO,所以我假设你的Auto适用于其他Entities那么这些设置正确。

您可能需要执行以下操作之一:

  • 迁移到这里
  • 在H2中更新列
  • 重新创建表格