hibernate中的本机生成器类

时间:2013-05-04 09:59:10

标签: java hibernate hibernate-mapping id-generation

我有hibernate映射xml文件的这一部分,我正在寻找本机意味着什么的好例子。

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

我知道它与唯一标识符属性有关,但我真的想有一个例子。

抱歉新手问题,我是新手一般的hibernate和编程:) 谢谢!

2 个答案:

答案 0 :(得分:10)

原生意味着  您的生成器将根据您当前的数据库支持使用标识或序列列。

Docs在这里解释了每个策略

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

<强>天然

  

根据底层数据库的功能选择identity,sequence或hilo。

<强>分配

  

允许应用程序在调用save()之前为对象分配标识符。如果未指定任何元素,则这是默认策略

例如: 在Mysql中,如果您将主键列作为auto_increment,则将使用此策略更新数据库

答案 1 :(得分:2)

要完成Suresh Atta所说的话,你可以命名序列:

<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>

因此它将适用于IDENTITY和SEQUENCE递增的主键。