📅  最后修改于: 2023-12-03 15:15:31.634000             🧑  作者: Mango
Hibernate提供了多种主键生成策略,包括自动、手工、序列、表格等方式。在实际开发中,自动主键生成方式是最受欢迎的方式之一,因为它可以避免手工维护主键值的麻烦,并且能够在并发操作中保证主键的唯一性。
首先,在Entity类中通过@Id注解来标识该属性为主键,并且通过@GeneratedValue注解来指定主键生成策略为自动:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
// getters and setters
}
这里的strategy属性指定了主键生成策略为自动,Hibernate会根据数据库的不同自动选择适合数据库的主键生成策略,例如MySQL使用的是自增长主键,Oracle使用的是序列。
除了strategy属性外,@GeneratedValue注解还有其他属性可供设置,包括generator、initialValue、allocationSize等,用于定制化主键生成策略的行为,详细内容可以参考Hibernate文档。
另外,还可以通过在XML文件中定义主键生成策略的方式来实现,示例代码如下:
<hibernate-mapping>
<class name="User">
<id name="id" type="java.lang.Long">
<generator class="native"/>
</id>
<property name="name" type="java.lang.String"/>
</class>
</hibernate-mapping>
这里的generator属性指定了主键生成策略为native,同样会根据不同的数据库自动选择适合的主键生成方式。
总之,Hibernate提供了丰富的主键生成方式,无论是通过注解还是XML配置方式,都可以方便快捷地定义自动主键生成策略。