我在同一个项目中有几个类,其中id始终是自动生成的。但是在这个特定的情况下,我的id值始终为空。我真的很想知道什么是错误的,因为经过一些改变后,它停止工作。并将其与其他类进行比较,代码似乎是相同的。Java JPA GenerationType.Auto值始终为空
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, Long> {
Checkin findById(Long id);
}
终于这是我从邮递员
得到的结果
什么底层的数据库?并显示id列的DDL定义 –
我并不清楚DDL定义的含义。我使用Hibernate和JPA。关于你关于底层数据库的问题,下面是我在build.gradle中使用的东西:compile(“org.springframework.boot:spring-boot-starter-data-jpa”) compile(“com.h2database:h2 “) –
@AntonioDelaTorre安装Hibernate重新创建数据库表(并丢失信息)并启用SQL日志。您将在日志中具有“DDL”(SQL CREATE TABLE语句)。其他生成DDL的方法:https://geowarin.github.io/generate-ddl-with-hibernate.html。这有点复杂。 –