JPA, Hibernate, Postgres und Sequence-Nummern

Zongatel

Mitglied
Hallo,
Meine Noobi-Anwendung scheint ein Stück vorangekommen zu sein.
Nun erlebe ich folgende Situation beim Insert in die Postgres-DB:
Der Insert funktioniert, die ID wird auch vergeben, aber es scheint so, dass das dafür definierte Sequence-Objekt nicht wirklich berührt wird.
Ich habe dazu mal aus Spaß auch eine andere noch nicht von mir auf nextval abgefragten Sequence verwendet, um erstaunliches zu sehen...
Zuvor hatte ich es mit der vorgesehenen seq_skill versucht bekam anfangs als IDs drolligerweise negative Zahlen. die seq_skill wurde aber scheinbar nicht von der Anwendung berührt, denn die Nummern erhöhten sich nur bei meinen manuellen Nextval-Aufrufen und waren noch dazu positiv!
Als ich dann auf einer glücklichen Seite nachlas, was ich offenbar machen muss, verwendete ich dann den Parameter allocationSize identisch mit der Definition für den SEQ-Cashe. Zwar waren es nun wieder ganz andere Zahlen für die IDs aber dafür positiv.
Dann machte ich die Probe auf Example ...
Hier habe ich vor als auch nach dem Versuch die noch jungfräuliche seq_mitarbeiter verwendet und stellte nach dem Insert weiterhin Jungfräulichkeit fest
1641942144532.png

[CODE lang="java" title="Hier wieder mein aktueller Skill-Bean" highlight="30"]package de.cmk.todo.restservices.skillmanager;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;



@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name= "\"skill\"", schema = "\"projekt-skill-verwalter\"")
public class Skill {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "skill_generator")
@SequenceGenerator(name="skill_generator", sequenceName = "projekt-skill-verwalter.seq_mitarbeiter", allocationSize=10)
@EqualsAndHashCode.Include
@Column(name="skill_id")
private Long id;
private String name;
@Column(name="beschreibung")
private String description;

}[/CODE]
Warum sind eigentlich DB-SEQs tatsächlich zu definieren, wenn sie anscheinend nicht ernsthaft verwendet werden?
Was übersehe ich hier?
 

mihe7

Top Contributor
Nun, currval liefert den in der aktuellen Postgres-Session zuletzt per nextval generierten Wert der Sequenz. Da Du in Deiner Sitzung keinen Wert generiert hast, bekommst Du den Fehler angezeigt (s. Doku)

Du willst den zuletzt generierten Wert der Sequenz - unabhängig von der Session - sehen:
SQL:
SELECT last_value FROM seq_mitarbeiter;
-- oder statt last_value natürlich per * alle Werte
 

Zongatel

Mitglied
Ahh danke, ich hatte das Konzept Sequenzen bisher immer unabhängig von Sessions gedacht wegen der Eindeutigkeit. Nun verstehe ich, dass offenbar die jeweilige Cache-Menge an Nummern der Session offenbar zugeordnet wird und die Eindeutigkeit nicht verletzt wird.
Hatte schon bedenken. Hatte ich das Konzept immer nur falsch verstanden, oder ist das eine Besonderheit von Postgres?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Postgres, Hibernate Seqencenummer wird wiederholt und verursacht PK-Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 3
Z Hibernate & Postgres in Spring Boot (Syntaxprobleme) Frameworks - Spring, Play, Blade, Vaadin & Co 2
H Laden der Hibernate Cfg in .jar Frameworks - Spring, Play, Blade, Vaadin & Co 5
ExceptionOfExpectation Persistierung in Hibernate(SpringBoot) Frameworks - Spring, Play, Blade, Vaadin & Co 2
padde479 org.hibernate.query.sqm.UnknownEntityException Frameworks - Spring, Play, Blade, Vaadin & Co 12
OnDemand Jasypt Hibernate 6 alternative gesucht Frameworks - Spring, Play, Blade, Vaadin & Co 3
Avalon @Query Select Abfrage liefert falsche Werte (Spring Boot, JPA, Hibernate) Frameworks - Spring, Play, Blade, Vaadin & Co 3
D org.hibernate.LazyInitializationException Frameworks - Spring, Play, Blade, Vaadin & Co 2
krgewb Hibernate - deleteByXXX Frameworks - Spring, Play, Blade, Vaadin & Co 3
Z Spring Boot mit JPA;, Hibernate, Rest & Lombok Frameworks - Spring, Play, Blade, Vaadin & Co 8
OnDemand Jasypt Spring Boot HIbernate wie komme ich an den Key? Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Hibernate Lazy Collection löschen Frameworks - Spring, Play, Blade, Vaadin & Co 7
H Hibernate Sql Abfrage loggen Spring mit log4j.properties Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand DTO <> Entity Hibernate Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 28
S Spring JPA / Hibernate: save Methode arbeitet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
R Spring Data: Hibernate liest nicht alle Ebenen Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring Data Hibernate mehrfache Suchkriterien Frameworks - Spring, Play, Blade, Vaadin & Co 5
H Spring Boot, Hibernate und OAuth2 wie komme ich an den User? Frameworks - Spring, Play, Blade, Vaadin & Co 13
D Spring Hibernate Struts2 ? Frameworks - Spring, Play, Blade, Vaadin & Co 1
F JPA org.hibernate.LazyInitializationException / Spring @Transactional Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Spring, Hibernate und JPA in einem Projekt Frameworks - Spring, Play, Blade, Vaadin & Co 4
I Nachladen mit Hibernate und Spring Frameworks - Spring, Play, Blade, Vaadin & Co 2
N MAVEN + Spring + JPA + Hibernate + JUnit4 Frameworks - Spring, Play, Blade, Vaadin & Co 5
E Tomcat mit Hibernate und Spring - Problem mit Connection Pool Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Context initialization failed - mit Spring, JPA, Hibernate Frameworks - Spring, Play, Blade, Vaadin & Co 1
B Buchempfehlung für Groovy, Spring, Hibernate, SOAP, J2EE gesucht Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Hibernate - Spring Roo Frameworks - Spring, Play, Blade, Vaadin & Co 0
Dit_ Springsource Toolsuit | Hibernate intergration Frameworks - Spring, Play, Blade, Vaadin & Co 1
J Test mit Hibernate und Spring Frameworks - Spring, Play, Blade, Vaadin & Co 5
D [InvalidDataAccessApiUsageException] Spring Data JPA / Hibernate Frameworks - Spring, Play, Blade, Vaadin & Co 1
B SpringMVC-EntityManagerFactory-Hibernate-Problem Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Problem mit Hibernate und Spring Frameworks - Spring, Play, Blade, Vaadin & Co 0
R Projektübergreifende Entities mit Tomcat (Spring/JPA/Hibernate) Frameworks - Spring, Play, Blade, Vaadin & Co 2
N Wie manage ich unter Spring mehrere Datenbankverbindung mit Hibernate Frameworks - Spring, Play, Blade, Vaadin & Co 6
Y Sessionmanagement (ThreadLocal) in Hibernate via Spring möglich? Frameworks - Spring, Play, Blade, Vaadin & Co 2
C Aufgabe in OSGI/Hibernate/Spring-DM Frameworks - Spring, Play, Blade, Vaadin & Co 4
dunhillone Problem mit Spring & Hibernate Sessions Frameworks - Spring, Play, Blade, Vaadin & Co 2
dunhillone Problem mit Spring & Hibernate Sessions Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring / Jpa / Hibernate -> java.lang.IllegalArgumentException: Unknown entity Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Hibernate und JDBC über Spring Frameworks - Spring, Play, Blade, Vaadin & Co 3

Ähnliche Java Themen

Neue Themen


Oben