Унаследованный абстрактный класс с JPA (+ Hibernate)

Как бы вы настроили аннотации в следующем примере кода? Я хотел бы придерживаться только аннотаций JPA и избегать специфических зависимостей Hibernate. Правильный ли приведенный ниже код?

@Entity
public class RefExample extends RefData {

}

(Будет несколько версий этих классов, RefSomeOtherExample и т. Д., И одна таблица БД для каждого класса. Некоторые могут добавлять дополнительные поля (столбцы), но большинство просто используют базовые поля, унаследованные от базового класса «RefData».)

Базовый класс:

@Entity
public abstract class RefData {

    private long id;
    private String code;
    private String desc;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(unique = true, nullable = false)
    public long getId() {

        return id;
    }

    public void setId(long id) {

        this.id = id;
    }

    @Column(unique = true, nullable = false, length=8)
    public String getCode() {

        return code;
    }

    public void setCode(String code) {

        this.code = code;
    }

    @Column(unique = true, nullable = false, length=80)
    public String getDesc() {

        return desc;
    }

    public void setDesc(String desc) {

        this.desc = desc;
    }
}

В конечном итоге я хотел бы сгенерировать сценарии создания схемы из этого, используя класс SchemaExport Hibernate. В приведенном выше случае эти два класса должны привести только к созданию одной таблицы с именем «RefExample» с тремя столбцами из «RefData». Будет ли это работать?

44
задан Manius 30 September 2010 в 03:30
поделиться