native generator class in hibernate

Rimchik picture Rimchik · May 4, 2013 · Viewed 24.4k times · Source

I have this part of hibernate mapping xml file, and I was looking for a good example for what does native mean.

<hibernate-mapping>
 <class name="com.hib.Task" table="tasks">
  <id name="id" type="int" column="id" >
   <generator class="native"/>
  </id>

I know it's something related to unique identifier property, but I would really like to have an example.

Sorry for the newbie question, I'm new to hibernate and programming in general :) Thank you!

Answer

Suresh Atta picture Suresh Atta · May 4, 2013

Native means Your generator will use identity or sequence columns according to what your current database support.

Docs explained about each strategy here

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-id

native

selects identity, sequence or hilo depending upon the capabilities of the underlying database.

assigned

lets the application assign an identifier to the object before save() is called. This is the default strategy if no element is specified.

For example: In Mysql if you have primary key column as a auto_increment, the db will be updated using this strategy