码迷,mamicode.com
首页 > Web开发 > 详细

hibernate5--主键生成策略

时间:2017-09-13 23:18:03      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:varchar   signed   prim   最大   where   高并发   images   double   tag   

技术分享

1、hibernate自己维护主键的值。首先获取该表中最大主键值,然后加一插入。主键字段对应的属性类型可以是int、short、long以及其封装类型。在高并发或者集群的情况下不能使用。

技术分享

2、identity:使用数据库自身自增长来维护。

<id name="id" column="tid">
            <generator class="sequence"></generator>

结果sql

Hibernate: 
    
    create table hibernate_sequence (
        next_val bigint
    )
Hibernate: 
    
    insert into hibernate_sequence values ( 1 )
Hibernate: 
    
    create table t_student (
        tid integer not null,
        tname varchar(255),
        tage integer,
        tscore double precision,
        primary key (tid)
    )
Hibernate: 
    select
        next_val as id_val 
    from
        hibernate_sequence for update
            
Hibernate: 
    update
        hibernate_sequence 
    set
        next_val= ? 
    where
        next_val=?
Hibernate: 
    insert 
    into
        t_student
        (tname, tage, tscore, tid) 
    values
        (?, ?, ?, ?)
    <id name="id" column="tid">
            <generator class="native"></generator>
        </id>

3、由Hibernate根据所使用的数据库支持能力从identity、sequence生成策略中选择一种。

4、assigned生成策略:程序员通过setId()手动设置。

5、uuid生成策略:使用IP地址、JVM的启动时间、当前系统时间、和一个计数器值经过计算产生。是一个32位长度的字符串。

示例:

技术分享

 

hibernate5--主键生成策略

标签:varchar   signed   prim   最大   where   高并发   images   double   tag   

原文地址:http://www.cnblogs.com/huadiyatou/p/7518087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!