1

私のアプリケーションでは、アノテーションを介して Hibernate マッピングを実装しようとしています。そこには抽象化された基本クラスがあり、このクラスには Id 属性が存在します。この基本クラスを子クラスで継承しています。コードを以下に示します。

@MappedSuperclass
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Base implements IBase {

    private static final long serialVersionUID = -1433573674276444516L;

    private int id;

    public Base() {

    }

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)   
    @Column(name="ID")
    public int getId() {
        return id;
    }

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

そして、子クラスは次のとおりです。

@Entity
@Table(name="USER")
public class User extends Base implements IUser {

    private static final long serialVersionUID = 344528694909088439L;

    private String name;

    public User() {

    }

    @Column(name="NAME", nullable=false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }   
}

USER テーブルを作成し、正常に動作しています。

私は正しい方法でそれをやっているのだろうかと思っていました。

ありがとう。

4

1 に答える 1

4

基本クラスから共通フィールドを継承するためにいくつかの独立したエンティティを作成することが目標である場合は、いいえ、正しく実行していません。アノテーション@Inheritanceは不要です。@Inheritanceは、エンティティ(Vehicleなど)と複数のサブエンティティ(Car、Bikeなど)がある場合に必要です。

于 2012-05-12T10:39:06.543 に答える