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选项必须被设置成唯一键列的名称。
备选的键是能够用来识别表中一个特定行的一列或者一组列。要变成主键,备选键必须满足下列属性:
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选项必须被设置成唯一键列的名称。
相关文章推荐
- 定义属性读写访问器的错误
- Hibernate缓存
- java 解压 unix .z 文件
- 怎样批量删除.svn文件
- Libvirt简介
- 基础总结篇之五:BroadcastReceiver应用详解
- 一步步教你如何在 Visual Studio 2013 上使用 Github
- phpmyadmin后台4种拿shell方法 && php爆路径大法
- passwd和shadow格式
- typedef和define具体的详细区别
- 【华为机试题】请在123456789之间添加+号或者-号,也可以什么都不填,使得等式的运算结果等于a。要求程序输出等式成立的个数b。测试用例:a=5时,b=21。
- JQuery validate
- S2S整合(基于struts2.1+Spring 3.1)
- Leetcode_convert-sorted-array-to-binary-search-tree
- C# 图片和二进制之间的转换
- CentOS6.3安装 Oracle 11g R2
- linux编程原理之――socket
- jQuery.validate插件
- UIPickerView(滚动选择控制器)
- ARM GNU 汇编宏定义