📅  最后修改于: 2023-12-03 14:38:56.134000             🧑  作者: Mango
@EmbeddedId
是Java Persistence API (JPA)中的注释,用于把多个属性组合成一个复合主键。它允许开发者在一个实体类中定义多个属性,这些属性当作一个主键来使用。
@Entity
@IdClass(PersonPK.class)
public class Person {
@Id
private Long id;
@Id
@Column(name = "PERSON_NAME")
private String name;
private Integer age;
// constructors and getters/setters
}
public class PersonPK implements Serializable {
private Long id;
private String name;
// constructors, getters and setters, equals and hashcode
}
@EmbeddedId
注释注释该主键@Entity
public class Person {
@EmbeddedId
private PersonPK personPK;
private Integer age;
// constructors and getters/setters
}
@Entity
public class Employee {
@EmbeddedId
private EmployeeId id;
private String name;
private String department;
// constructors and getters/setters
}
@Embeddable
public class EmployeeId implements Serializable {
private Integer id;
private String company;
// constructors, getters and setters, equals and hashcode
}
以上示例定义了一个Employee实体类,它有一个EmployeeId属性用于实现复合主键。EmployeeId是一个嵌入式主键类,其中包含了一个id和一个company属性。Employee和EmployeeId之间是通过@EmbeddedId
进行关联的。
@EmbeddedId
是JPA的一个强大注释,允许开发者轻松地定义实体类中的复合主键。通过在实体类上定义一个复合主键类并对其进行注释,开发者可以轻松地更改实体类的主键定义,而不需要更改表架构的定义。