需要 @ Id注解来标识 主键,当不使用 系统内置的@Generated Value 时,将有开发者自己进行主键的设置,这时需要保证主键字段值的唯一性
使用自动生成的几种内置策略:
GenerationType.AUTO Hibernate 选择一种合适的策略,这等同于 不进行任何设置的@GeneratedValue()
GenerationType.SEQUENCE Hibernate 生成顺序数字值
GenerationType.IDENTITY Hibernate 将在表DDL中创建一个特殊的自增长主键列,Insert时会自动生成一个数字值
GenerationType.TABLE Hibernate 使用一个额外的表来保存下一个数字主键值,每行对应一个实体类,默认表名 HIBERNATE_SEQUENCE ,具有 SEQUENCE_NAME和SEQUENCE_NEXT_HI_VALUE列, 内部实现了一种更为复杂但是很有效的高/低位生成算法。