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

    示例:

  • 相关阅读:
    springboot maven打包插件
    maven打包指定main入口插件
    团队开发环境一致性性要求
    springboot 在idea中实现热部署
    IDEA 2018.1可用License服务(持续更新)
    IDEA打jar包
    3月18号
    3月17号
    3月16号
    3月13号
  • 原文地址:https://www.cnblogs.com/huadiyatou/p/7518087.html
Copyright © 2011-2022 走看看