2014-09-05 1 views
0

Я хочу использовать Hibernate. У меня есть схема базы данных, и я хотел бы написать аннотации в моем коде.Как я могу получить атрибут в классе из суперкласса?

У меня есть класс Az. Это выглядит следующим образом:

В A.java:

public class A { 
    public Integer id; 
} 

В B.java:

@Entity 
@Table(name="table_b") 
public class B extends A { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    //How can I get that id attribute from the A class? 

    @Column 
    public String string; 
} 
+0

Что случилось с объявлением его снова в B? – kingdamian42

+0

Я не хочу объявлять его снова. Я буду хорош для меня, но моему учителю/боссу не понравится id :) Я бы хотел написать правильно – Kroy

+1

Сначала вы должны изучить [Hibernate Inheritance mapping] (https://docs.jboss.org/ hibernate/orm/3.3/reference/en/html/inheritance.html), и без этих трех стратегий мое предпочтение заключается в определении только соответствующего «getter & setter» в родительском классе. –

ответ

0

вы положили аннотацию @MappedSuperClass выше класса А. Идентификатор поля должен быть аннотированный в clas A not B.

+0

Хорошо, но этого не достаточно. Как мне получить этот атрибут от B? – Kroy

+0

вы наследуете его, поэтому класс B уже имеет идентификатор поля. Если вы хотите сопоставить идентификатор поля с столбцом, вы должны его аннотировать в классе A. – Ammaro

+0

Ok. Я понимаю. Но я хочу использовать это наследование из множества других классов. Например, C, D, E. И эти классы также отображаются для таблиц базы данных. Как я должен аннотировать этот класс? – Kroy

Смежные вопросы