博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate3中generator标签使用
阅读量:5239 次
发布时间:2019-06-14

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

在XXX.hbm.xml映射配置文件中定义<generator class="native"/>标签是为了告诉Hibernate框架使用什么方式去生成主键

class对应的选项:

1.increment:自动增长(short、int...)

  * 是指Hibernate框架控制的自动增长,Hibernate框架首先会使用select * from语句查找数据库中最高的主键值,然后在该主键值的基础上再+1。

  缺点:会造成线程安全问题

 

2.identity:自动增长(short、int...)

  * 他是数据库控制的自动增长,相当于在创建表示为表的列增加auto_increment

  缺点:不能用于oracle,因为oracle中没有auto_increment,oracle中用的是序列

 

3.sequence:序列(short、int...)

  * 可以实现自动增长,但是他只能用于支持序列的数据库,比如oracle

 

4.uuid:随机字符串(string)

  * 他会为主键去生成随机字符串,相应的在创建Hibernate持久化类时要这样写 private String id;

 

5.native:本地策略

  * Hibernate框架会根据本地的数据库自动的选择是用identity或者sequence,

  * 换句话说如果你本地使用的oracle,Hibernate会自动选择使用sequence,如果本地使用mysql他会自动选择indentity

 

6.assigned:手动

  * Hibernate不会去维护主键,在往数据库中插入数据时,程序员要自己手动添加一个主键。

 

7.foreign:外来主键

  * 主键是外来的,比如拿另一个表的主键来当现表的主键(多表一对一关系)

转载于:https://www.cnblogs.com/zyh1994/p/5399559.html

你可能感兴趣的文章
poj 3164 最小树形图(朱刘算法)
查看>>
百度贴吧图片抓取工具
查看>>
服务器内存泄露 , 重启后恢复问题解决方案
查看>>
ajax post 传参
查看>>
2.1命令行和JSON的配置「深入浅出ASP.NET Core系列」
查看>>
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
Android实现静默安装与卸载
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
解决php -v查看到版本与phpinfo()版本不一致问题
查看>>
Java反射之修改常量值
查看>>
jmeter远程分布执行遇到的网卡坑(A Test is currently running,stop or ....)
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>