我在同一個項目中有幾個類,其中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。這有點複雜。 –