您的位置:首页 > 其它

Hibernate主键

2014-04-01 15:44 190 查看
1、选择主键

备选的键是能够用来识别表中一个特定行的一列或者一组列。要变成主键,备选键必须满足下列属性:

1)它的值(对于备选键的任意列而言)永远不为空。

2)每一行都有唯一的值。

3)一个特定行的值永远不变。

2、选择键生成器

Hibernate有几个内建的标识符生成策略。

生成器名称:native

选项:无

生成器描述:native同一性生成器挑选其他同一性生成器,如identity、sequence或者hilo,取决于底层数据库的能力。使用这个生成器保证映射元数据可以移植到不同的数据库管理系统。

生成器名称:identity

选项:无

生成器描述:这个生成器支持DB2、MySQL、MS SQL Server、Sybase和HypersonicSQL中的同一性列。返回的标识符类型为long、short或者int

生成器名称:sequence

选项:sequence,parameters

生成器描述:这个生成器在DB2、PostgreSQL、Oracle、SAPDB或者Mckoi中创建一个序列;或者使用InterBase中的一个生成器。返回的标识符类型为long、short或者int。如果创建序列的其他设置要被添加到DDL,就使用sequence选项给序列定义一个目录名称(默认是hibernate_sequence)和parameters。

生成器名称:increment

选项:无

生成器描述:Hibernate启动时,这个生成器读取表的最大(数字)主键列值,并且每次插入一个新行时值就增加1。生成的标识符类型为long、short或者int。如果单服务器的Hibernate应用程序对数据库具有排它性访问时,这个生成器特别有效,但不应该被用于任何其他场合。

生成器名称:hilo

选项:table,column,max_lo

生成器描述:高/低位算法是生成long类型标识符的一种高效的方法,给定表和列(默认时,分别为hibernate_unique_key和next)作为高值源。高/低位算法生成仅对特定数据库唯一的标识符。这个生成器每次获取高值时总要使用一个单独的数据库连接,因此它不受用户提供的数据库连接支持。换句话说。别把它与sessionFactory.openSession(myConnection)共用。

生成器名称:seqhilo

选项:sequence,parameters,max_lo

生成器描述:这个生成器的作用就像一般的hilo生成器,除了它使用一个具名的数据库序列来生成高值之外。

生成器名称:uuid

选项:separator

生成器描述:这个生成器是一个128位的UUID(生成String类型的标识符的一种算法,在网络内部唯一)。IP地址与一个唯一的时间戳结合使用。

生成器名称:guid

选项:无

生成器描述:这个生成器在MySQL和SQL服务器中提供一个数据库生成的全局唯一的标识符字符串。

生成器名称:select

选项:key

生成器描述:这个生成器获取由数据库触发器分配的一个主键,它按某些唯一键选择行并获取主键值。这个策略需要另一个唯一的备选键列,且key选项必须被设置成唯一键列的名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: