12

我有这部分休眠映射 xml 文件,我正在寻找一个很好的例子来说明原生的含义。

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

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

对于新手问题,我很抱歉,我是一般的休眠和编程新手 :) 谢谢!

4

2 回答 2

12

本机意味着您的生成器将根据您当前的数据库支持使用身份或序列列。

文档在这里解释了每种策略

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

本国的

根据底层数据库的功能选择身份、序列或 hilo。

分配

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

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

于 2013-05-04T10:04:30.980 回答
3

为了完成 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 递增的主键。

于 2014-11-21T09:10:18.350 回答