a)
generator
<id name="id"
> <generator class="native"></generator>
</id>
b)
常用四个:native
identity sequence uuid
注解方式:@GeneratedValue
a)
自定义ID
b)
AUTO(直接写
@GeneratedValue
相当如native)
(@GeneratedValue(strategy=GenerationType.AUTO))
i.
默认:对 MySQL,使用auto_increment
ii.
对
Oracle使用hibernate_sequence(名称固定)
c)
IDENTITY(@GeneratedValue(strategy=GenerationType.IDENTITY))
d)
SEQUENCE(@GeneratedValue(strategy=GenerationType.SEQUENCE))
i.
@SequenceGenerator(可自定义在数据库生成指定的sequence名)
@SequenceGenerator(name="teacherSEQ",
sequenceName="teacherSEQ_DB")
public class Teacher {
private int id;
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="teacherSEQ")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
e)
TABLE
(可以忘记)
i.
@TableGenerator
@TableGenerator(
name="teacherID",
//被调用的TABLE名字
table="teacherID_DB",
//数据库建立的表名
pkColumnName="key_value",
pkColumnValue="pk_value",
valueColumnName="teacher",
//pkColumnValue对应类名
allocationSize=1
//pkColumnValue对应类名
)
@GeneratedValue(strategy=GenerationType.TABLE,generator=" teacherID
")
注:如果使用注解方式的uuid
如下:
@Id
@GeneratedValue(generator="teacherUUID")
@GenericGenerator(name="teacherUUID",
strategy="uuid")
public String getId()
{
|