@Id
@GeneratedValue
这两个注解是在编写PO(持久层对象)的时候,id字段要加的注解。
其中@GeneratedValue有四种用法,看源码可以知道:
public
enum
GenerationType{
TABLE, SEQUENCE, IDENTITY, AUTO
}
-
TABLE:使用一个特定的数据库表格来保存主键。
-
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
-
IDENTITY:主键由数据库自动生成(主要是自动增长型)
-
AUTO:主键由程序控制。
案例:
第一种:
@Id
@GeneratedValue(strategy =GenerationType.SEQUENCE,generator=
"bb")
@SequenceGenerator(name=
"bb"
, sequenceName=
"seq_name")
第二种:
@Id
@GeneratedValue
(strategy = GenerationType.IDENTITY)
第三种
@Id
@GeneratedValue
(strategy = GenerationType.AUTO)
第四种:自定义生成
@Id
@GeneratedValue
(generator =
"paymentableGenerator"
)
@GenericGenerator
(name =
"paymentableGenerator"
, strategy =
"assigned"
)