Je ne souhaite pas utiliser d'identifiant d'auto-incrémentation. J'ai cette table dans PostgreSQL:
@Entity @Table(name = "project") @JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" }) public class Project { @Id @Column(name = "id") private String id; @Column(name = "name") private String name; @Column(name = "number") private BigInteger number; @Column(name = "state") private String state;
Et j'ai ce modèle:
CREATE TABLE public.project ( id character varying(255) COLLATE pg_catalog."default" NOT NULL, name character varying(255) COLLATE pg_catalog."default" NOT NULL, number bigint NOT NULL, state character varying(255) COLLATE pg_catalog."default", CONSTRAINT project_pkey PRIMARY KEY (id) )
Je veux utiliser un identifiant simple Je ne veux pas utiliser d'auto-incrémentation et hibernate_sequence, et je ne comprends pas où je me trompe.
Et j'ai l'erreur: ERROR 11088 --- [ restartedMain] ohengine.jdbc.spi.SqlExceptionHelper : ERROR: relation "hibernate_sequence" does not exist
3 Réponses :
Vous devez définir spring.jpa.properties.hibernate.id.new_generator_mappings=false
dans votre fichier application.properties
.
Courir:
CREATE SEQUENCE hibernate_sequence START 1;
Dans mon cas, je pourrais résoudre le problème en mettant à niveau le pilote postgres vers une version plus récente qui semble également fonctionner avec différentes versions postgres (plus anciennes). (version mise à jour dans build.gradle):
implementation 'org.postgresql:postgresql:42.2.18'
Avez-vous quelque part dans l'annotation du modèle @GeneratedValue?
Non, je n'ai pas, mais avant je l'avais et je l'ai enlevé.
avez-vous un type de données série sur postgresql? parce que la mise en veille prolongée générera une séquence pour ce type que parce que vous pouvez prendre cette erreur
Et après avoir retiré, vous avez fait une compilation complète?
Oui, j'ai beaucoup de type de données série dans d'autres tables. Si je comprends bien.
Double possible de Migrating Hibernate 3 to 5: la relation hibernate_sequence n'existe pas
Non, ce n'est pas pareil.