generator
The required <generator> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <param> element.
<id name="id" type="long" column="uid" unsaved-value="0"> <generator class="net.sf.hibernate.id.TableHiLoGenerator"> <param name="table">uid_table</param> <param name="column">next_hi_value_column</param> </generator> </id>
All generators implement the interface net.sf.hibernate.id.IdentifierGenerator. This is a very simple interface; some applications may choose to provide their own specialized implementations. However, Hibernate provides a range of built-in implementations. There are shortcut names for the built-in generators:
- increment
-
generates identifiers of type long, short or int that are unique only when no other process is inserting data into the same table. Do not use in a cluster.
- identity
-
supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL. The returned identifier is of type long, short or int.
- sequence
-
uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase. The returned identifier is of type long, short or int
- hilo
-
uses a hi/lo algorithm to efficiently generate identifiers of type long, short or int, given a table and column (by default hibernate_unique_key and next respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database. Do not use this generator with connections enlisted with JTA or with a user-supplied connection.
- seqhilo
-
uses a hi/lo algorithm to efficiently generate identifiers of type long, short or int, given a named database sequence.
- uuid.hex
-
uses a 128-bit UUID algorithm to generate identifiers of type string, unique within a network (the IP address is used). The UUID is encoded as a string of hexadecimal digits of length 32.
- uuid.string
-
uses the same UUID algorithm. The UUID is encoded a string of length 16 consisting of (any) ASCII characters. Do not use with PostgreSQL.
- native
-
picks identity, sequence or hilo depending upon the capabilities of the underlying database.
- assigned
-
lets the application to assign an identifier to the object before save() is called.
- foreign
-
uses the identifier of another associated object. Used in conjunction with a <one-to-one> association.
identity 属性在id为主键自动添加的时候使用
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=137211