标签:
主键类型:
业务主键(natural key):业务主键的值是来源于一个业务数据。
代理主键(surrogate key):代理主键需要采用一种方式来生成某个唯一值。
代理主键的生成策略:
1、hibernate的主键生成策略只能用于代理主键
2、不同的主键生成策略需要的内容也是不同。
Hibernate的主键生成策略:
1、assigned:由应用程序负责生成主键标识符,通常使用在数据库中没有代理主键,使用的主键与业务相关的情况,即使用的是业务主键。这种主键的生成方式不建议使用,在数据库表设计时就应该使用代理主键,不应使用业务主键。在没有指定标签时,默认就是assigned主键的生成方式。 在插入数据的时候主键由用户自己生成,Hibernate不负责生成主键。
<id name="userid" type="java.lang.Long">
<column name="USERID" precision="22" scale="0" />
<generator class="assigned" />
</id>
2、identity:适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识
使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段。
标签:
原文地址:http://www.cnblogs.com/zhoujingyu/p/4923967.html