Hibernate的ID的标识符生成器

news/2024/7/4 0:48:35 标签: hibernate, generator, sql server, 数据库, postgresql, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

“increment” 主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。(只有在没有其他进程往同一张表中插入数据时才能使用。 ) “identity” 采用class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。 “sequence” 采用class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。 “native” (本地) 由 Hibernate 根据使用的class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。 “uuid.hex” 由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键。“uuid.string” 与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库中。 “foreign” 使用另外一个相关联的对象的标识符作为主键。

以下举例: 1、指定参数的情况:      <id name="id" unsaved-value="0">        <class="tags" href="/tags/GENERATOR.html" title=generator>generator class="sequence">          <param name="sequence">SEQ_CHILD</param>        </class="tags" href="/tags/GENERATOR.html" title=generator>generator> </id> 使用的是sequence,适合oracleclass="tags" href="/tags/ShuJuKu.html" title=数据库>数据库;

2、对于class="tags" href="/tags/SQLSERVER.html" title=sql server>sql server2000中的class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库子增字段,在配置文件使用下列方法实现: <id name="id" type="long" unsaved-value="0">       <column name="id" sql-type="numeric" not-null="true" />       <class="tags" href="/tags/GENERATOR.html" title=generator>generator class="identity" /> </id> 这里主要是:identity:代表由class="tags" href="/tags/SQLSERVER.html" title=sql server>sql server2000class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库自己提供子增字段.如果要class="tags" href="/tags/HIBERNATE.html" title=hibernate>hibernate自己提供,则用increment关键字来实现 3、如果表中的主键用字符串类型:可以用class="tags" href="/tags/HIBERNATE.html" title=hibernate>hibernate自己提供的方法实现主键唯一:    <id name="id" type="string" unsaved-value="null">        <column name="cid" sql-type="char(32)" not-null="true" />        <class="tags" href="/tags/GENERATOR.html" title=generator>generator class="uuid.hex" />    </id> 使用的是uuid.hex: 采用128位的算法来生成一个32位字符串。最通用的一种方式。适用于所有class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库。

*进阶篇 在Hibernate中实现自己的主键生成器(id Generator) http://www.javaeye.com/topic/119240


http://www.niftyadmin.cn/n/1425770.html

相关文章

菜菜的深度学习笔记 | 基于Python的理论与实现(五)—>神经网络的学习

系列索引&#xff1a;菜菜的深度学习笔记 | 基于Python的理论与实现 文章目录一、神经网络的学习&#xff08;1&#xff09;数据驱动&#xff08;2&#xff09;训练数据和测试数据&#xff08;3&#xff09;损失函数均方误差&#xff1a;交叉熵误差&#xff1a;mini-batch学习&…

hibernate的关联

1.单向关联 单向关联&#xff08;Unidirectional associations&#xff09; 7.2.1. 多对一(many to one) 单向many-to-one关联是最常见的单向关联关系。 <class name"Person"> <id name"id" column"personId"> <ge…

菜菜的深度学习笔记 | 基于Python的理论与实现(六)—>简单两层网络的实现

系列索引&#xff1a;菜菜的深度学习笔记 | 基于Python的理论与实现 文章目录一、学习算法的实现&#xff08;1&#xff09;神经网络的学习步骤&#xff08;2&#xff09;神经网络的类&#xff08;3&#xff09;mini-batch的实现&#xff08;4&#xff09;基于测试数据的评价一…

Hibernate Annotation1

1.概述 值得期待的Hibernate Annotation 式配置终于随着Hibernate 3.2GA 版本的发布而宣布正式被支持了&#xff01; 只要数据库以及字段名称设计合适&#xff0c;我们甚至只需要在原来程序上加上3行代码&#xff0c;就可以配置完成一个Bean。 这依稀看到了Rails 的影子...…

菜菜的深度学习笔记 | 基于Python的理论与实现(七)—>误差反向传播

系列索引&#xff1a;菜菜的深度学习笔记 | 基于Python的理论与实现 文章目录一、误差反向传播法&#xff08;1&#xff09;基础概念&#xff08;2&#xff09;计算图&#xff08;3&#xff09;链式法则&#xff08;4&#xff09;反向传播一、误差反向传播法 &#xff08;1&am…

菜菜的深度学习笔记 | 基于Python的理论与实现(八)—>简单层的实现

系列索引&#xff1a;菜菜的深度学习笔记 | 基于Python的理论与实现 文章目录&#xff08;1&#xff09;乘法层、加法层的实现&#xff08;2&#xff09;激活函数层的实现1.ReLU层2.Sigmoid层我们以购买苹果和橘子的例子来了解一下计算图是如何应用的 &#xff08;1&#xff0…

数据分析入门 | kaggle泰坦尼克任务(一)—>数据加载和初步观察

系列索引&#xff1a;数据分析入门 | kaggle泰坦尼克任务 文章目录一、数据加载&#xff08;1&#xff09;载入数据&#xff08;2&#xff09;逐块读取二、初步观察一、数据加载 本次主要以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作&#xff0c;完成kaggle…

Hibernate Annotation2

用EJB3注释进行映射   现在EJB3实体Bean是纯粹的POJO。实际上表达了和Hibernate持久化实体对象同样的概念。他们的映射都通过JDK5.0注释来定义(EJB3规范中的XML描述语法至今还没有定下来)。注释分为两个部分&#xff0c;分别是逻辑映射注释和物理映射注释&#xff0c;通过逻辑…