Hibernate初学者---自定义生成ID策略的步骤

一,为什么要用自定义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”, allocationSize=”integer”)

    • name: 策略名
    • table:表名
    • pkColumName: 表示主键字段名,此字段名与实体类中的属性字段名无任何关联!
    • valueColumName: 表示序值字段名。
    • pkColumValue=表示主键字段值 ,

    pkColumName/ pkColumValue 是成对的 valueColumName/valueColumValue 其实也是成对的,只不过valueColumValue 的值就是当前策略自动生成的ID,所以略过了


四,引用一种策略方案

@GeneratorValue(strategy= GeneratorType.xxx, generator= ” 策略名”)

你可能感兴趣的:(hibernate)