generator子元素定义持久化标识符的生成策略,为持久化类对应的数据库表的主键找到了赋值方法,HIbernate默认将使用assigned的持久化标识符生成策略。
关系型数据库的主键定义方式
(1),用户自定义主键。单一主键或复合主键。
(2),代理主键。
Hibernate的内置持久化标识符生成器
(1)increment(递增)用于为long short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用,在集群中不要使用。
(2),identity,对DB2、MySQL、MS SQLServer,Sybase和HypersonicSQL的内置标识字段提供支持。返回的标志符是long、short、或者int类型的。
(3),sequence,使用序列
(4),hilo(高低位),使用一个高/低位算法来高效的生成long short 或int类型的标志符。给定一个表和字段(默认为hibernate_unique_key和next)作为高位值的来源,高/低位算法生成的标志符只在一个特定的数据库中是唯一的。
(5),native(本地)
根据底层数据库的能力选择identity、sequence、或者hilo中的一个。
(6),assigned(程序设置)
让应用程序在save()之前为对象分配一个标志符。
(7),foreign(外部引用)
使用另外一个相关联对象的标识符。与<one-to-one>联合一起使用,用在基于主键关联的一对一关联。

composite-id元素来映射复合主键

<composite-id>

  <key-property name="id" type="long" />  

  <key-property name="owner" type="String" />

</composite-id>

Hibernate持久化标志符生成策略的更多相关文章

  1. java框架篇---hibernate主键生成策略

    Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...

  2. 基于按annotation的hibernate主键生成策略

    基于按annotation的hibernate主键生成策略 博客分类: Hibernate HibernateJavaJPAOracleMySQL  这里讨论代理主键,业务主键(比如说复合键等)这里不 ...

  3. jpa基于按annotation的hibernate主键生成策略

    JPA注解持久化类很方便,需要jar包:ejb3-persistence.jar下载 一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hib ...

  4. 160727、自定义hibernate主键生成策略生成字符串+数字自增长

    需求:需要自增长注解如MyId0001.MyId0002.MyId0003 实现:实现这个接口org.hibernate.id.IdentifierGenerator 一.MyIdGenerator. ...

  5. Hibernate主键生成策略(转)

    1.自动增长identity 适用于MySQL.DB2.MS SQL  Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL ...

  6. [转]hibernate主键生成策略

    1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识使用SQL Server 和 MySQL 的 ...

  7. hibernate主键生成策略

    在hibernate中,提供了多种主键生成器(不同的数据库,不同的表结构使用的主键生成策略也不相同),查阅相关资料经过实验总结如下: 1.increment 主键按照数值顺序递增,使用当前实例中最大值 ...

  8. hibernate主键生成策略(转载)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  9. 初学Hibernate主键生成策略

    具有业务含义的主键叫自然主键:随机生成,不具备业务含义的字段作为主键,叫代理主键. 在表与POJO类关系映射文件XXX.hbm.xml中,可通过配置id元素下generator节点的class属性指定 ...

随机推荐

  1. 交换机 & 路由基础

    以太网帧结构 Ethernet II帧结构 Ethernet_II帧类型值大于等于1536(0×0600) 以太网帧结构的长度在64-1518字节之间 帧各字段说明 目的MAC地址(DMAC):接收方 ...

  2. Cain工具的使用

    这次是用windows xp当肉鸡,用Windows2003进行监听 这是一个基于ARP协议的漏洞的攻击 先要确认两个虚拟机之间能够互相ping通和都能正常访问网页 首先安装好Cain后,张这个样子: ...

  3. docker添加sudo权限

    sudo groupadd docker  # 添加group sudo gpasswd -a think docker  # 添加用户到组 sudo service docker restart n ...

  4. Android Thermal HAL 降龙十八掌

    基本概念 参阅下面两篇文章,就可以大概了解一些概念的内容了 https://source.android.com/devices/architecture/hidl/thermal-mitigatio ...

  5. 『与善仁』Appium基础 — 9、补充:C/S架构和B/S架构说明

    目录 1.C/S架构和B/S架构概念 2.C/S结构与B/S架构的区别 3.C/S架构和B/S架构优点和缺点 (1)B/S模式的优点和缺点: (2)C/S模式的优点和缺点: 1.C/S架构和B/S架构 ...

  6. 9组-Ahlpa-6/3

    一.基本情况 队名:不行就摆了吧 组长博客:https://www.cnblogs.com/Microsoft-hc/p/15546622.html 小组人数: 8 二.冲刺概况汇报 卢浩玮 过去两天 ...

  7. python实现图像直方图

    目录: (一)直方图的使用 正文: (一)直方图的使用 1 from matplotlib import pyplot as plt 2 def plot_demo(image): 3 print(i ...

  8. [luogu7600]封闭道路

    对于确定的$K$,问题也可以看作每一个点最多选$K$条出边,并最大化选择的边权和 关于这个问题,有如下的树形dp-- 令$f_{k,0/1}$表示以$k$为根的子树中,根节点选择不超过$K/K-1$个 ...

  9. [atARC101F]Robots and Exits

    每一个点一定匹配其左边/右边的第一个出口(在最左/右边的出口左/右边的点直接删除即可),否则记到左右出口的距离分别为$x_{i}$和$y_{i}$ 令$p_{i}$表示$i$匹配的出口(左0右1),结 ...

  10. 分享一个工具方法:日期格式化 & 日期转化,用法与java类SimpleDateFormat类似

    /** * y 年(201X) * M 年中的月份(1-12) * d 月份中的天数(1-31) * H 一天中的小时数(0-23) * h am/pm 中的小时数(1-12) * m 小时中的分钟数 ...