Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Table Generator

Der wohl flexibelste, aber auch eindeutig langsamste Weg IDs zu erzeugen, ist unter Zuhilfenahme einer zusätzlichen Tabelle.

CREATE TABLE hibernate_sequences (
  NEXT_VAL      BIGINT       NOT NULL,
  SEQUENCE_NAME VARCHAR(255) NOT NULL
);

ALTER TABLE hibernate_sequences
  ADD CONSTRAINT SEQUENCE_PK PRIMARY KEY (SEQUENCE_NAME);
@Entity
public class Customer {
    @Id
    (1)
    // @TableGenerator can customize the table
    @GeneratedValue(strategy = GenerationType.TABLE) (2)
    private Long id;
1 mit @TableGenerator kann man die Tabelle anpassen.
2 @GeneratedValue legt fest, auf welche Art die ID erzeugt werden soll.
Sobald viele Threads gleichzeitig auf diese Tabelle zugreifen wollen, wird das zu einem ernsten Bottleneck.