@GeneratedValue是JPA中的注解,用于指定主键生成策略。它可以用在主键字段或属性的get方法上,也可以用在实体类的类级别上,表示对所有实体类的主键生成策略。
@GeneratedValue注解有几个属性可以指定主键生成策略:
-
strategy:指定主键生成策略,可选值有AUTO、IDENTITY、SEQUENCE、TABLE等。默认为AUTO,表示由JPA自动选择适合底层数据库的主键生成策略。
-
generator:指定主键生成器的名称,对应于底层数据库的序列或表。
示例代码:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// 其他属性和方法
}
在上面的例子中,@GeneratedValue注解用于指定主键生成策略,strategy属性的值为GenerationType.IDENTITY,表示使用数据库的自增长字段来生成主键。由于该注解标注在id字段上,因此主键生成策略只针对id字段生效。