一,为什么要用自定义ID策略?
JPA自带的ID生成策略足以满足我们一般的需求,自定义的ID生成策略可以为我们实现更加精细化的统计方案,且可以跨平台使用。
二,策略声明的位置决定方案的作用域
- 声明在类的上方:所有属性都可以引用。
- 声明在属性上方:该属性专用。
- 其实就是: 声明在类的上面就是公共计数器,声明在属性上面就是私有计数器。
三,创建一种策略方案。
策略分四种,AUTO,IDENTITY, SEQUENCE, TABLE
- AUTO最常用,是默认值
- IDENTITY用于MYSQL,
- CEQUENCE用于ORACLE.
- TABLE跨平台
其中,SEQUENCE和TABLE可以自定义策略方案,其策略声明格式为:
@SequenceGenerator(name= “xxx”, sequenceName=”xxx”,allocationSize=”integer”)- name : 策略名
- sequnceName: 所生成的序列排序方案的名字,
- allocationSize: 递增值
@TableGenerator(name= “xxx”, table=”xxx”,pkColumName = “xxx”, valueColumName=”xxx”, pkColumValue= “xxx”, allocatio