ID生成策略
1. 在Xxx.hbm.xml配置文件中
在id标签内使用generator标签
常用有四种:native,identity,sequence, uuid
native 策略:
在oracle中用的是sequence (hibernate_sequence 固定名称)
在mysql中是auto_increment
在SqlServer中用的是identity
Identity策略:
在DB2,MySql,SqlServer中使用的自动递增的字段,(oracle不支持)
uuid策略:
全局唯一的id
2. 在Annotation 中:
在id的注解下面加一个@GeneratedValue(注意是javax.persistence)
四种策略:
1. 默认的是AUTO (相当于xml配置文件中的native)
2.identity (oracle数据库不支持)
@GeneratedValue(strategy=GenerationType.IDENTITY)
3.sequence 可以指定生成sequence的名字
4.table (使用任何数据库)
@javax.persistence.TableGenerator(
name = "EMP_GEN", //表名
pkColumnName = "pk_key", //第一个字段的名字,可以指定
valueColumnName = "pk_value", //第二个字段的名字,可以指定
pkColumnValue = "", // value字段的值
allocationSize=1 //步长
)
3. 联合主键