Hibernate3中generator标签使用

在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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值