Un mémo à prendre lorsqu'une erreur se produit lors de l'utilisation d'une séquence dans la colonne ID de PostgreSQL + JPA.
Avec PostgreSQL (10.0)
create table employee (
  employee_id serial not null,
  employee_name text,
  constraint employee_PKC primary key (employee_id)
);
Quand il y a une table comme
@Entity
public class Employee {
    @Id
    @SequenceGenerator(name = "employee_employee_id_seq")
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer employeeId;
    private String employeeName;
    // Getter/Setter
}
Si vous ajoutez l'annotation, lors de l'enregistrement de l'enregistrement
org.postgresql.util.PSQLException: ERROR: relation "hibernate_sequence" does not exist
J'ai eu l'erreur. Apparemment, le nom de la séquence par défaut est référencé.
Il y a deux manières.
L'inconvénient est que vous devez écrire le nom de la séquence plusieurs fois.
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_employee_id_seq")
@SequenceGenerator(name = "employee_employee_id_seq", sequenceName = "employee_employee_id_seq")
private Integer employeeId
C'est plus simple.
@Id
@SequenceGenerator(name = "employee_employee_id_seq")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer employeeId;