<p>increment<br>generates identifiers of type long, short or int that are unique only when<br>no other process is inserting data into the same table. Do not use in a<br>cluster.<br>identity<br>supports identity columns in DB2, MySQL, MS SQL Server, Sybase and<br>HypersonicSQL. The returned identifier is of type long, short or int.<br>sequence<br>uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a<br>generator in Interbase. The returned identifier is of type long, short or int<br>hilo<br>uses a hi/lo algorithm to efficiently generate identifiers of type long,<br>short or int, given a table and column (by default hibernate_unique_key</p>
<p>and next_hi respectively) as a source of hi values. The hi/lo algorithm<br>generates identifiers that are unique only for a particular database.<br>seqhilo<br>uses a hi/lo algorithm to efficiently generate identifiers of type long, short<br>or int, given a named database sequence.<br>uuid<br>uses a 128-bit UUID algorithm to generate identifiers of type string,<br>unique within a network (the IP address is used). The UUID is encoded<br>as a string of hexadecimal digits of length 32.<br>guid<br>uses a database-generated GUID string on MS SQL Server and MySQL.<br>native<br>picks identity, sequence or hilo depending upon the capabilities of the<br>underlying database.<br>assigned<br>lets the application to assign an identifier to the object before save() is<br>called. This is the default strategy if no <generator> element is specified.<br>select<br>retrieves a primary key assigned by a database trigger by selecting the<br>row by some unique key and retrieving the primary key value.<br><span style="color: #ff6600;">foreign<br>uses the identifier of another associated object. Usually used in<br>conjunction with a <one-to-one> primary key association.</span><br>sequence-identity<br>a specialized sequence generation strategy which utilizes a database<br>sequence for the actual value generation, but combines this with JDBC3<br>getGeneratedKeys to actually return the generated identifier value as<br>part of the insert statement execution. This strategy is only known to be<br>supported on Oracle 10g drivers targetted for JDK 1.4. Note comments<br>on these insert statements are disabled due to a bug in the Oracle<br>drivers.</p>
<p>and next_hi respectively) as a source of hi values. The hi/lo algorithm<br>generates identifiers that are unique only for a particular database.<br>seqhilo<br>uses a hi/lo algorithm to efficiently generate identifiers of type long, short<br>or int, given a named database sequence.<br>uuid<br>uses a 128-bit UUID algorithm to generate identifiers of type string,<br>unique within a network (the IP address is used). The UUID is encoded<br>as a string of hexadecimal digits of length 32.<br>guid<br>uses a database-generated GUID string on MS SQL Server and MySQL.<br>native<br>picks identity, sequence or hilo depending upon the capabilities of the<br>underlying database.<br>assigned<br>lets the application to assign an identifier to the object before save() is<br>called. This is the default strategy if no <generator> element is specified.<br>select<br>retrieves a primary key assigned by a database trigger by selecting the<br>row by some unique key and retrieving the primary key value.<br><span style="color: #ff6600;">foreign<br>uses the identifier of another associated object. Usually used in<br>conjunction with a <one-to-one> primary key association.</span><br>sequence-identity<br>a specialized sequence generation strategy which utilizes a database<br>sequence for the actual value generation, but combines this with JDBC3<br>getGeneratedKeys to actually return the generated identifier value as<br>part of the insert statement execution. This strategy is only known to be<br>supported on Oracle 10g drivers targetted for JDK 1.4. Note comments<br>on these insert statements are disabled due to a bug in the Oracle<br>drivers.</p>