Ein Memo, das erstellt werden soll, wenn bei Verwendung einer Sequenz in der ID-Spalte von PostgreSQL + JPA ein Fehler auftritt.
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.
Es gibt zwei Möglichkeiten.
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
Das ist einfacher.
@Id
@SequenceGenerator(name = "employee_employee_id_seq")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer employeeId;
Recommended Posts