博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate的id生成策略
阅读量:4322 次
发布时间:2019-06-06

本文共 1406 字,大约阅读时间需要 4 分钟。

欢迎转载,请注明出处

一、xml配置方式的id生成

其中class常用的值有四个,native、 identity、 sequence、 uuid。

注:其中native和uuid不局限与数据库。如果用oracle的话。使用native,就会在数据库中使用sequence来自动生成id;在mysql中。会设置id auto_increatment(代表id自动增长)

  “uuid.hex” :  由   Hibernate   基于128   位   UUID   算法   生成16   进制数值(编码后以长度32   的字符串表示)作为主键。

 “uuid.string” :  与uuid.hex   类似,只是生成的主键未进行编码(长度16),不能应用在   PostgreSQL   数据库中。

二、注解(anotation)方式

  • auto方式在主键id上标注,@GeneratedValue
    (@GeneratedValue(strategy=GenerationType.AUTO))      默认:对 MySQL,使用auto_increment      对 Oracle使用hibernate_sequence(名称固定)
  • 使用IDENTITY(@GeneratedValue(strategy=GenerationType.IDENTITY)
    使用于sql server,mysql数据库中,oracle不适用
  •  SEQUENCE(@GeneratedValue(strategy=GenerationType.SEQUENCE))(在oracle中使用)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "teacherSEQ")public class Teacher{    private int id;    private String name;
    @SequenceGenerator(name="teacherSEQ", sequenceName="teacherSEQ_DB")     public int getId()    {        return id;    }    public void setId(int id)    {        this.id = id;    }    public String getName()    {        return name;    }    public void setName(String name)    {        this.name = name;    }}
  • 使用uuid方式,和上面的sequence的方式类似
    @Id    @GenericGenerator(name = "system-uuid", strategy = "uuid.hex")    @GeneratedValue(generator = "system-uuid")       public String getId() {        return id;    }

     

  • 使用table方式,待续……

 

 三、联合主键

转载于:https://www.cnblogs.com/shizhongtao/p/3436523.html

你可能感兴趣的文章
Bmob基础
查看>>
HashMap和HashTable,HashMap中key和value的原理 - 跳刀的兔子 - 博客园
查看>>
Linux自定义分隔符IFS引发的文本处理问题
查看>>
小米商城-题头4
查看>>
permu 莫队 总结
查看>>
Android中Handler原理
查看>>
x/nfu-用gdb查看内存
查看>>
移植wpa_supplicant2.5及界面配置wifi(原创)
查看>>
JAVA编码(52)—— API接口安全性设计
查看>>
c:"WINDOWS"Microsoft.NET"Framework"v2.0.50727"Temp
查看>>
android EditText自动弹出和自动关闭软键盘
查看>>
吉特日化MES-工业生产盲区
查看>>
Codeforces 517 #B
查看>>
实验四
查看>>
Scramble String
查看>>
php之接口概念
查看>>
01、计算机原理结构,及冯诺依曼体系结构
查看>>
Python 列表基本操作
查看>>
Linux TC基于CBQ队列的流量管理范例
查看>>
Python hashlib and hmac
查看>>