Концепция наследования в jpa - PullRequest
1 голос
/ 25 марта 2010

Я создал одну таблицу, используя концепцию наследования для хранения данных в хранилище данных механизма приложений Google.Он содержит следующую кодировку, но показывает ошибку. Как использовать концепцию наследования. Какая ошибка в моей программе

Программа 1:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class calender {

    @Id
    private String EmailId;

    @Basic
    private String CalName;

    @Basic
    public void setEmailId(String emailId) {
        EmailId = emailId;    
    }

    public String getEmailId() {    
        return EmailId;    
    }

    public void setCalName(String calName) {    
        CalName = calName;    
    }

    public String getCalName() {
        return CalName;    
    }

    public calender(String EmailId, String CalName) {    
        this.EmailId = EmailId;    
        this.CalName = CalName;    
    }
}

Программа 2:

@Entity
public class method extends calender {
    @Id
    private String method;

    public void setMethod(String method) {
        this.method = method;
    }

    public String getMethod() {    
        return method;    
    }

    public method(String method) {    
        this.method = method;    
    }

}

Мое ограничение: я хочу вывод, подобный этому

Calendartable содержит

Emailid 

calendarname

, а таблица методов содержит

Emailid

method

Как этого добиться?

Itпоказывает следующую ошибку в этой строке public method(String method)

java.lang.Error: Unresolved compilation problem: 

    Implicit super constructor calender() is undefined. Must explicitly invoke another constructor

Ответы [ 3 ]

1 голос
/ 25 марта 2010
  1. Согласно При использовании JPA с App Engine стратегия наследования JOINED не поддерживается.

  2. Ваш код не компилируется, добавьте конструктор по умолчанию в Calendar.

  3. Не думаю, что вы должны аннотировать поле method с помощью @Id.

0 голосов
/ 25 марта 2010

Ваша ошибка "конструктор calender () не определена" довольно проста.Вы должны создать конструктор без параметров в классе календаря (вы можете сделать его закрытым, если не хотите его использовать).Это потому, что компилятор может создать конструктор по умолчанию сам, только если в классе нет других конструкторов.

0 голосов
/ 25 марта 2010

Хранилище данных GAE / J не является СУБД, поэтому, следовательно, единственная "стратегия наследования", которая имеет какой-либо смысл, - это TABLE_PER_CLASS. Я ожидаю, что GAE / J сгенерирует исключение, если вы укажете эту стратегию, а если нет, то вам следует поднять проблему против них

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...