@javax.persistence.TableGenerator
Extract of the annotation reference in the Hibernate Developer Guide by example
Extensive, easy-to-follow introduction to Hibernate 3 including complete working examples. Integration of Hibernate with other technologies like Spring, EJB3, Struts and JavaServer Faces (MyFaces) is explained.
It is available as PDF in English language.
A German paper book was published by the Galileo Verlag.
@javax.persistence.TableGenerator( |
definiert einen Id Generator, der von der Annotation @GeneratedValue referenziert werden kann; Der Generator speichert den letzten Wert in einer Datebanktabelle. |
name=�generatorName�, |
Name des Generators, der in der Annotation @GeneratedValue verwendet werden kann |
table=�databaseTable�, |
Tabelle, in der der n�chste zu vergebene Wert der Id gespeichert wird |
catalog=�databaseCatalog�, |
Datenbankkatalog der Tabelle (wird nur von manchen Datenbanken unterst�tzt) |
schema=�schemaName�, |
Datenbankschema der Tabelle (wird nur von manchen Datenbanken unterst�tzt) |
valueColumnName |
Tabellenspalte, in der der n�chste zu vergebene Wert der Id gespeichert wird |
pkColumnValue |
Tabellenspalte, in der ein Schl�sselwert steht, der den n�chsten zu vergebene Wert identifiziert; Vorgabe: Name der Klasse |
initialValue |
legt den Startwert der Id fest, Vorgabewert: 1 |
allocationSize |
Vorgabewert: 50, Der Generator erh�ht nicht für jeden neuen Datensatz den Wert der Id in der Tabelle, sondern erh�ht die Sequenz um die allocationSize und verteilt die Nummern. Erst wenn alle Nummern verteilt sind, wird die Sequenz wieder aufgerufen. Wenn man 50 Eintr�ge in die Datenbank schreibt spart man sich bei einer allocationSize von 50 daher 49 Mal das Erh�hen des Wertes. Das verbessert die Performance. Der Nachteil ist, dass die vergebenen Ids bei einem Neustart der Anwendung L�cken haben. Generatoren sollten laut EJB 3 Spec global sein, aber Hibernate h�lt sich mindestens bis zur Version 3.2 nicht an diese Festlegung. |
uniqueConstraints={@UniqueConstraint(columnNames={"col_A, col_B"})} |
optional, erzeugt beim Erstellen der Tabelle einen Unique-Key-Constraint |
) |
|
@Id @TableGenerator(name = "puma_gen", table="primary_keys") @GeneratedValue(strategy = GenerationType.TABLE, generator = "puma_gen") private Integer id; |