[JAVA] Was tun, wenn "Relation" hibernate_sequence "nicht existiert" in der ID-Spalte von PostgreSQL + JPA

Ein Memo, das erstellt werden soll, wenn bei Verwendung einer Sequenz in der ID-Spalte von PostgreSQL + JPA ein Fehler auftritt.

Phänomen

Mit PostgreSQL (10.0)

create table employee (
  employee_id serial not null,
  employee_name text,
  constraint employee_PKC primary key (employee_id)
);

Wenn es einen Tisch wie gibt

@Entity
public class Employee {
    @Id
    @SequenceGenerator(name = "employee_employee_id_seq")
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer employeeId;

    private String employeeName;

    // Getter/Setter
}

Wenn Sie beim Speichern des Datensatzes die Anmerkung hinzufügen

org.postgresql.util.PSQLException: ERROR: relation "hibernate_sequence" does not exist

Ich habe den Fehler bekommen. Anscheinend wird auf den Standardsequenznamen verwiesen.

Bewältigung

Es gibt zwei Möglichkeiten.

So geben Sie den Sequenznamen explizit an

Der Nachteil ist, dass Sie den Sequenznamen viele Male schreiben müssen.

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_employee_id_seq")
@SequenceGenerator(name = "employee_employee_id_seq", sequenceName = "employee_employee_id_seq")
private Integer employeeId

Verwendung von GenerationType.IDENTITY

Das ist einfacher.

@Id
@SequenceGenerator(name = "employee_employee_id_seq")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer employeeId;

Recommended Posts

Was tun, wenn "Relation" hibernate_sequence "nicht existiert" in der ID-Spalte von PostgreSQL + JPA
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
[Grails] Beim Ausführen ist ein Fehler aufgetreten. Was ist zu tun, wenn die Grails-CLI nicht gestartet wird?
Verarbeitung, wenn eine ID, die nicht in der Datenbank vorhanden ist, in die URL eingegeben wird
Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was ist zu tun, wenn in einer der Quellen in der Entwicklungsumgebung mit Docker × Rails × RSpec "Nicht gefunden" angezeigt wird?
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
[Schienen] Was tun, wenn Schienen nicht reagieren oder nicht anhalten?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was tun beim Debuggen von "Quelle nicht gefunden"?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
[JPA] Vergleichen Sie Tabelle1 und Tabelle2, um Daten abzurufen und zu aktualisieren, die in Tabelle2 nicht vorhanden sind
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn der Wert im zweiten getSubmittedValue () in JSF Validator null wird?
Was zu tun ist, wenn es ungültig ist, weil es nicht mit einem '-' beginnt
[Schienen] Was tun, wenn das Refile-Bild beim Schreiben der Verarbeitung zum Zeitpunkt des Routing-Fehlers nicht angezeigt wird?
Was tun, wenn das Update nach der Bereitstellung von Rails AWS nicht wirksam wird?
[React.useRef] Was tun, wenn im Ereignis-Listener nicht auf den neuesten Status verwiesen werden kann?
Was tun, wenn das SSL-Zertifikat abgelaufen ist?
Was tun, wenn JSF-Tags nicht zu HTML werden?
Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
Was ist zu tun, wenn in Eclipse "Fehler beim Laden der gemeinsam genutzten JNI-Bibliothek" angezeigt wird?
Was tun, wenn die Annotation JSON Hint nicht mit Lombok und JSONIC funktioniert?
Was tun, wenn der Haltepunkt schattiert ist und beim Debuggen nicht stoppt?
Im Warndialog beim Starten des Applets funktioniert die Prüfung "Beim nächsten Mal nicht anzeigen" nicht
Was tun, wenn Sie in Eclipse eine JRE auswählen und "Die ausgewählte JRE unterstützt die aktuelle Konformitätsstufe 11 nicht" erhalten?
Was ist zu tun, wenn ein bestimmtes Objekt in JSF convertDateTime nicht als Datum formatiert werden kann?
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
Bluemix Infrastructure VPN stellt keine Verbindung her, da NPAPI nicht unterstützt wird! Was tun, wenn [Mac]
Was zu überprüfen ist, wenn Schienen db: Migration nicht bestanden
So erhalten Sie das Protokoll, wenn install4j nicht gestartet wird
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
Was tun, wenn Sie die Quellposition wissen möchten, an der die Methode in bind.pry definiert ist?
[Rails 5] [Turbolinks] Was tun, wenn JS aufgrund eines Seitenübergangs oder eines Browsers nicht funktioniert?
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Was tun, wenn javax.el.ELException: Kein gültiger Methodenausdruck: wird angezeigt, wenn der JSF-Bildschirm angezeigt wird
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
Was tun, wenn in einer Lightweight-JRE eine UnsupportedCharsetException auftritt?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
Wenn Sie shutdownNow nicht aufrufen, wenn die Übertragung mit dem Java SDK von AWS S3 abgeschlossen ist, bleibt der Thread weiterhin bestehen.
[RSpec] Wenn Sie die Instanzvariable des Controllers im Test verwenden möchten [Zuweisungen wird nicht empfohlen]
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
[IOS] Was tun, wenn das Bild mit einer Farbe gefüllt ist?
Was tun, wenn das Hintergrundbild nach der Bereitstellung nicht angewendet wird?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird