Hibernate <generator> Element
In this tutorial you will learn about the hibernate's <generator> element.
<generator> is an optional child element of the element <id>. In <generator> a class name is to be assigned using which unique identifier is generated for the new record at the time of new record is saved. For example :
<class name="roseindia.Employee" table="employee"> <id name="empId" type="long" column="Id" > <generator class="assigned"/> </id>
A simple interface org.hibernate.id.IdentifierGenerator is implemented by all generators. Hibernate provides a various built-in implementations some of them built-in generators are as follows :
shortcut name for the built-in generators | Description |
increment | For the type long, short or int identifiers are generated these identifiers will not be remain unique if any other process inserts data into the same table. It should not used in the clustered environment. |
identity | In DB2, MySQL,
MS SQL Server, Sybase and HypersonicSQL an identity column is supported. The returned type of an identifier may be long, short or int. |
sequence | In DB2, MySQL,
MS SQL Server, Sybase and HypersonicSQL an identity column is supported. The returned type of an identifier may be long, short or int. |
assigned | This generator lets to assign an identifier to the object by application before calling the save(). A default strategy if generator element is not specified. |
select | This generator retrieves a primary key and primary key value by selecting the row by some unique key that are assigned by a database trigger |
foreign | This generator uses the identifier of another associated object. Commonly used in conjunction with a |
sequence-identity | Only supported by Oracle 10g drivers. It is a specialized sequence generation strategy. For the actual value generation it uses a database sequence. |