zoukankan      html  css  js  c++  java
  • hibernate5--主键生成策略

    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位长度的字符串。

    示例:

  • 相关阅读:
    [hihoCoder] #1093 : 最短路径·三:SPFA算法
    [hihoCoder] #1089 : 最短路径·二:Floyd算法
    [LeetCode] Number of Islands
    PRML5-神经网络(1)
    CUDA2.4-原理之性能优化及浮点运算
    PRML1-引言
    PGM1.1-简介
    AI1.1-人工智能史
    数学-矩阵计算(4)两种布局
    数学-矩阵计算(2)矩阵函数微积分前奏
  • 原文地址:https://www.cnblogs.com/huadiyatou/p/7518087.html
Copyright © 2011-2022 走看看