📜  Spring Data JPA – @Id 注解(1)

📅  最后修改于: 2023-12-03 15:20:13.120000             🧑  作者: Mango

Spring Data JPA – @Id 注解

在Spring Data JPA中,@Id注解是非常重要的一个注解,它用于标识实体类的主键属性。

什么是主键?

主键是用于唯一标识实体类的一个属性。它可以是一个仅仅包含简单类型的属性,也可以是一个复合属性。在JPA中,每个实体类都必须有一个主键。

如何使用@Id注解?

@Id注解可以在实体类中的任何属性上使用,用于标识它是主键属性。例如,下面的代码演示了如何在一个简单实体类中使用@Id注解:

@Entity
public class User {
    
    @Id
    private Long id;
    
    private String name;
    private Integer age;
    
    // getters and setters
}

在上面的代码中,我们将"id"属性标记为主键属性。一旦我们使用了@Id注解,JPA将会自动将这个属性映射为数据库表的主键列。

注:主键可以是任何类型,不一定是Long类型。

如何使用复合主键?

如果您想使用复合主键,可以将@Id注解放置在属性的getter方法上,而不是属性上。例如:

@Entity
public class Order {
 
    @EmbeddedId
    private OrderId id;
 
    // other fields and getters/setters
}
 
@Embeddable
public class OrderId implements Serializable {
    private Long customerId;
    private Long orderNumber;
 
    // getters/setters and equals/hashcode
}

在上面的代码中,我们使用了一个嵌入式的复合主键。我们创建了一个名为OrderId的嵌入类型,并将其作为Order实体类的主键属性使用。

总结

@Id注解是Spring Data JPA中非常重要的一个注解,它用于将实体类的属性映射为数据库表的主键列。如果你想使用复合主键,你需要使用@EmbeddedId注解和嵌入对象类型。