2010-03-25 139 views
1

我使用Inheritance概念創建了一個表,以將數據浸入到Google應用引擎數據存儲中。它包含以下代碼,但它顯示error.How用戶繼承concept.What錯誤在我的計劃jpa中的繼承概念

計劃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 

如何實現這一目標?

它顯示了在這條線public method(String method)

java.lang.Error: Unresolved compilation problem: 

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

請,更精確。你遇到了什麼錯誤?你需要實現什麼樣的繼承?你的意思是「方法」應該繼承「日曆」嗎?如果是這樣,我沒有看到「擴展」在「方法」類中的字... – user132371

+0

雅我添加擴展,但它顯示了另一個錯誤,我也包括,也 – user246160

回答

0

以下錯誤GAE/J的數據存儲是不是一個RDBMS所以因此唯一的「繼承策略」讓任何意義是TABLE_PER_CLASS。我希望,如果你指定戰略GAE/J拋出一個異常,如果沒有的話,你應該提出一個問題,對他們的

0

你的錯誤「構造壓延機()是未定義」相當簡單。您應該在日曆類中創建不帶參數的構造函數(如果您不想使用它,可以將其設置爲私有)。這是因爲編譯器只有在類中沒有其他構造函數的情況下才能自行創建默認構造函數。

1
  1. 根據Using JPA with App Engine,不支持JOINED繼承策略。

  2. 您的代碼不編譯,在Calendar添加一個默認的構造函數。

  3. 我不認爲你應該用@Id註釋method字段。