JPA实体扩展类包含@Id

Haz*_*zim 4 java jpa

我有实体类都包含id作为主键,我可以创建包含所有公共字段的抽象类,并允许所有类扩展此类如下:

public abstract class CommonFields{
    @Id
@Column(name = "ID")
private long id;

public void setId(long id) {
    this.id = id;
}

public long getId() {
    return id;
}
}

@Entity
    @Table
    public class B extends CommonFields{
    String carModel;
}




@Entity
    @Table
    public class A extends CommonFields{
    String name;
}
Run Code Online (Sandbox Code Playgroud)

谢谢你们

Gab*_*uiu 16

您可以使用@MappedSupperclass使用公共字段来注释类

@MappedSuperclass
public abstract class CommonFields{
    @Id
    @Column(name = "ID")
    private long id;

    public void setId(long id) {
        this.id = id;
    }

    public long getId() {
        return id;
    }
}
Run Code Online (Sandbox Code Playgroud)

来自@MappedSuperclass文档:

指定一个类,其映射信息应用于从其继承的实体.映射的超类没有为其定义单独的表.