Archiv für den Monat: Februar 2011

Hibernate neue Sequence einfügen

Wenn man im Projekt „nur“ Integer als Primary Key zur Verfügung hat und ein Refactoring ist nicht abzuschätzen, so kann man für besonders zahlreiche Entities eigene Sequencen anlegen.


@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tsgen")
@SequenceGenerator(name = "tsgen", sequenceName = "sq_t_timeseries_data", allocationSize = 1, initialValue = 7000000)
@Column(insertable = false, updatable = false)

Nicht vergessen den aktuellen respektive initialen Wert zu setzen. Bei PostgreSQL war es notwendig, nach dem Schema-Update von Hibernate, den „CurrentValue“ manuell noch einmal anzupassen.

Ebenfalls empfehlenswert ist allocationSize = 1 zu setzen, da sonst in 50ger Schritten die Schlüssel bezogen werden.