Ich habe mehrere Klassen im selben Projekt, in denen die ID immer automatisch generiert wird. In diesem speziellen Fall ist der Wert meiner ID jedoch immer Null. Ich frage mich wirklich was falsch ist, denn nach einigen Änderungen hat es aufgehört zu arbeiten. Und verglichen mit den anderen Klassen scheint der Code derselbe zu sein.Java JPA GenerationType.Auto Wert immer 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;}
}
Dies ist das Repository, in dem die Objekte gespeichert werden:
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);
}
und schließlich ist dies das Ergebnis, das ich von Postman bekommen
was die zugrunde liegende Datenbank? und zeigen Sie die DDL-Definition der ID-Spalte –
Ich bin nicht sicher, was Sie mit DDL-Definition meinen. Ich verwende Hibernate mit JPA. Und in Bezug auf Ihre Frage zu der zugrunde liegenden Datenbank, hier ist, was ich in meinem build.gradle verwendet habe: compile ("org.springframework.boot: spring-boot-starter-data-jpa") kompilieren ("com.h2database: h2 ") –
@AntonioDelaTorre Setup Hibernate, um Datenbanktabellen (und verlorene Informationen) neu zu erstellen und das SQL-Protokoll zu aktivieren. Sie werden 'DDL' im Protokoll haben (SQL' CREATE TABLE' Anweisungen). Andere Möglichkeit DDL zu generieren: https://geowarin.github.io/generate-ddl-with-hibernate.html. Es ist ein bisschen komplexer. –