在JPA(Java Persistence API)和Hibernate中,复合键和继承的类是两个重要的概念。
复合键
复合键是指在数据库中,一个实体类的主键由多个属性组成的情况。在JPA和Hibernate中,可以通过以下方式定义复合键:
@Embeddable
注解定义一个嵌入式类,该类包含主键的所有属性。@EmbeddedId
注解来引用嵌入式类作为主键。例如:
@Entity
public class Order {
@EmbeddedId
private OrderId orderId;
// 其他属性和方法
}
@Embeddable
public class OrderId implements Serializable {
private String customerId;
private Long orderNumber;
// 构造函数、getter和setter方法
}
继承的类
在JPA和Hibernate中,实体类可以通过继承来扩展其他实体类的属性和方法。这种继承可以分为三种类型:
@Inheritance
注解来定义。@Inheritance
注解来定义,并设置strategy=InheritanceType.JOINED
。@Inheritance
注解来定义,并设置strategy=InheritanceType.TABLE_PER_CLASS
。例如:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Employee {
@Id
private Long id;
private String name;
// 其他属性和方法
}
@Entity
public class FullTimeEmployee extends Employee {
private Double salary;
// 其他属性和方法
}
@Entity
public class PartTimeEmployee extends Employee {
private Double hourlyRate;
// 其他属性和方法
}
推荐的腾讯云相关产品
产品介绍链接地址
云+社区技术沙龙[第17期]
云+社区技术沙龙[第11期]
高校公开课
云+社区技术沙龙[第28期]
云+社区技术沙龙[第3期]
开箱吧腾讯云
开箱吧腾讯云
领取专属 10元无门槛券
手把手带您无忧上云