@MappedSuperclass
是 Java Persistence API (JPA) 中的一个注解,用于指示某个类是一个映射的超类(Mapped Superclass)。映射的超类类似于普通的 Java 类,但它不会被映射到数据库表,而是作为其他实体类的基类,用于共享字段和方法。
当你在 JPA 中定义一个实体类的时候,可以使用@Entity
注解来标识它,这将使得该类会被映射到数据库中的表。但有时候,你可能会想要定义一些属性和方法,这些属性和方法可以被多个实体类共享,而不需要在每个实体类中都重复定义。
这时候,你可以创建一个标有@MappedSuperclass
注解的抽象类,将这些共享的属性和方法放在其中。这些属性和方法将不会被映射到数据库表,但可以被继承自这个超类的实体类使用。
以下是一个简单的示例,展示了如何使用@MappedSuperclass
注解:
import javax.persistence.*;
@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Long id;
@Column(name = "c服务器托管网reated_at")
protected Timestamp createdAt;
// Getter and Setter methods
}
@Entity
@Table(name = "employees")
public class Employee ex服务器托管网tends BaseEntity {
@Column(name = "employee_name")
private String employeeName;
// Getter and Setter methods
}
在这个示例中,BaseEntity
是一个映射的超类,它有一个自动生成的id
字段和一个createdAt
字段。Employee
类继承自BaseEntity
,并且额外定义了一个employeeName
字段。
当你使用 JPA 持久化上述代码中的Employee
实体类时,id
和createdAt
字段将会被映射到数据库表,而BaseEntity
类本身并不会映射到表。
总之,@MappedSuperclass
注解允许你在 JPA 中创建一个共享属性和方法的基类,而不需要将这些属性和方法映射到数据库表中。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
【直播预告】99 元的云虚拟机 9 毛 9 的云原生架构√ “道虽迩,不行不至;事虽小,不为不成。”2023年,对渠成开源社区来说,是不平凡的一年,更是值得回味的一年。 这一年,我们从零搭建了渠成开源社区,确定了工作组成员; 这一年,我们链接了开源作者/开源社…