hibernate主键生成策略主要指的是在实体类orm的配置

  <id name="">

      <generator class="native"></generator>

  </id>

主键生成策略:(7个)

  indentity  :主键自增  ,从数据库中维护主键值,在录入时不用指定主键。   控制台sql 显示为: insert into  Person(name ,sex,age) values(?,?,?)

  increment :   主键自增,从hibernate中维护,每次插入前 ,会先查询表中最大id值  +1 作为id值   。 控制台SQL 显示为: select   max(id) from person   ,  inserst into  person (id ,name,sex,age) values(?,?,?,?);    具有线程安全问题  ,当对个用户同时插入时, 查询的最大id相同, 提交最慢的把前面的用户覆盖掉了

sequence  :oracle  数据库 序列 主键生成策略

  Hilo  :高低为算法    hibernate自己生成自动递增  (开发不使用)

  native  :hilo +sequence +indetity    自动三选一  、 根据数据库的方言选择对应的生成策略

  uuid  : 产生随机字符串作为主键    实体类成员变量类型为string 类型

  assigned: 自然主键生成策略,  由开发人员自己录入(表某一列具有主键特征  ,比如:个人信息中的身份证号)

eg :  Person p=new Person();

            p.setId(23434);

            必须自己录用id值  ,否则会报异常:

            p.setName("dfdf");  p.setSex("男”);  p.setAge(30);

          session.save(p);

  

hibernate(二)主键生成策略的更多相关文章

  1. hibernate 注解 主键生成策略

    一.JPA通用策略生成器       通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue ...

  2. 从实例看hibernate的主键生成策略

    学习了hibernate会发现.hibernate中有实体类.实体类的映射文件.可是我们怎么样才干知道实体类的主键是如何的生成方式呢?hibernate提供的主键生成策略帮我们完美地解答了这个疑问.以 ...

  3. 大家一起撸代码之——Hibernate各种主键生成策略与配置详解

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  4. Hibernate中主键生成策略

    主键生成策略 increment identity sequence native uuid assigned 1) increment 由hibernate完成 主键递增, 原理:select ma ...

  5. Hibernate各种主键生成策略与配置详解

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

  6. Hibernate各种主键生成策略与配置详解《转》

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  7. hibernate的主键生成策略

    一共是13种,其中包括native native: 对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就 ...

  8. Hibernate各种主键生成策略与配置详解【附1--<generator class="foreign">】

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  9. 【转】Hibernate各种主键生成策略与配置详解

    原文转自:Fra~~kaka's Blog 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无 ...

  10. hibernate 各种主键生成策略(转)

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

随机推荐

  1. 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?

    在高并发.高负载的情况下,如何给表添加字段并设置DEFAULT值? 在Oracle 12c之前,当Oracle表数据量上亿时,对表执行“ALTER TABLE XXX ADD COLUMN_XX VA ...

  2. python基础 列表 的使用

    列表 首先定义一个列表 声明列表 列表名字=[值1,值2] list=[1,2,3,4,5] 这是一个列表,列表中有五个元素(1,2,3,4,5) 显示list列表 print   list 输出   ...

  3. HDU 6181 Two Paths

    这是一道次短路的题 但是本题有两个坑 注意边权的范围,一定要在所有与距离有关的地方开 long long 本题所求的并不是次短路,而是与最短路不同的最短的路径,如果最短路不止一条,那么就输出最短路的长 ...

  4. BZOJ 1488: [HNOI2009]图的同构 [Polya]

    完全图中选出不同构的简单图有多少个 上题简化版,只有两种颜色....直接copy就行了 太诡异了,刚才电脑上多了一个不动的鼠标指针,然后打开显卡管理界面就没了 #include<iostream ...

  5. 2018/1/15 JAVA多线程相关

    本文不说synchronized相关,它就是JAVA的一个保留关键字,jdk自己实现了它,但说真的,可应用场景真的少,相比lock接口,它还是被淘汰好吧; 首先,说说lock接口,lock接口是一个工 ...

  6. docker-compose快速搭建lnmp+redis服务器环境

    因为我用的是MacOS 安装docker sudo yum update sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrep ...

  7. 一个shell脚本给客户使用服务器生成一个序列号

    #!/bin/bash interface=`ls /sys/class/net|grep en|awk 'NR==1{print}'` if [ ! -e /etc/adserver/.seq.in ...

  8. ★MySQL一些很重要的SQL语句

    [mysqldumpslow] -s 排序选项:c 查询次数 r 返回记录行数 t 查询时间  -t 只显示top n条查询  mysqldumpslow -s r -t 10000 slow-que ...

  9. Windows下使用Sublime text3快速编辑Linux文件,写Shell

    所需要配合的工具是WinSCP 添加完毕之后直接在目录下双击要编辑的shell脚本文件,即可弹出Sublime Text的编辑器 然后咱通过Putty看看Linux虚拟机上的文件有没有发生变化

  10. C# 13行代码带你模拟登录QQ空间

    最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录... 然后,我曹....一堆请求就开始了....搞 ...