native generator class in hibernate

懵懂的女人 提交于 2019-11-28 07:14:18

问题


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!


回答1:


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




回答2:


And to complete what Suresh Atta said, you can name the sequence:

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

So it will either work for IDENTITY and for SEQUENCE incremented primary key.



来源:https://stackoverflow.com/questions/16373015/native-generator-class-in-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!