@Id
@Column(name = "f_user_id", unique = true, nullable = false)
@TableGenerator(name = "tg_cms_user",
pkColumnValue = "cms_user",
table = "t_id_table",
pkColumnName = "f_table",
valueColumnName = "f_id_value",
initialValue = 1,
allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_cms_user")
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@TableGenerator
name:属性表示该表主键生成策略的名称,它被引用在@GeneratedValue中设置的“generator”值中;
table:属性表示表生成策略所持久化的表名,例如,这里表使用的是数据库中的“t_id_table";
catalog:属性和schema具体指定表所在的目录名或是数据库名;
pkColumnName:属性的值表示在持久化表中,该主键生成策略所对应键值的名称。例如在“t_id_table”中将“f_table”作为主键的键值;
valueColumnName:属性的值表示在持久化表中,该主键当前所生成的值,它的值将会随着每次创建累加。例如,在“t_id_table”中将“f_id_value”作为主键的值;
pkColumnValue:属性的值表示在持久化表中,该生成策略所对应的主键。例如在“t_id_table”表中,将“f_table”的值为“CUSTOMER_PK”;
initialValue:表示主键初识值,默认为0;
allocationSize:表示每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50;
@Column
unique:
属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记
nullable:属性表示该字段是否可以为null值,默认为true