我有hibernate映射xml文件的这一部分,我正在寻找本机意味着什么的好例子。
<hibernate-mapping>
<class name="com.hib.Task" table="tasks">
<id name="id" type="int" column="id" >
<generator class="native"/>
</id>
我知道它与唯一标识符属性有关,但我真的想有一个例子。
抱歉新手问题,我是新手一般的hibernate和编程:) 谢谢!
答案 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递增的主键。