2013-01-20 112 views
0

我有兩個實體類 - AB。代碼的模板如下:Java持久性和實體類

class A extends class B { 
    // ... 
} 

@Entity 
@Table("OPERATION") 
@DiscriminatorValue() 
@Access() 
class B { 
    // ... 
} 

B在.sql文件中有模式定義。類A沒有任何模式定義。

我的問題是,是不是A也不需要在.sql文件中有一個模式定義,以便它被映射到關係數據庫?我對此感到困惑,無法理解地圖是如何發生的。

要使用更具體的例子,我有以下兩類OperationOperationAmend與他們的代碼如下:

@Entity 
@DiscriminatorValue() 
@Access() 
class OperationAmend extends Operation { 
    //some functions here for amending an operation 
} 

@Entity 
@Table("OPERATION") 
@DiscriminatorValue() 
@Access() 
class Operation { 
    //some functions here for the operation. 
} 

SQL架構:

CREATE TABLE OPERATION {  
    OperationId INT;  
    Name VARCHAR(20); 
} 

如何才能OperationAmend類被保存即使它沒有模式?

+0

相關:[JPA @Entity Inheritance](http://stackoverflow.com/q/6170564/1065197) –

+0

我在ibatis中使用ibatis和繼承映射有點不同.. – MindBrain

回答

0

在JPA中,實體只需在persistence.xml中聲明(或由提供者掃描)才能被識別。提供者爲其生成一個模式。現在,數據庫中可能不存在實現表,但這很容易解決。