2015-11-05 81 views
1

當我堅持這個子類時會發生什麼? 當我爲子類對象查詢數據庫時,變量a和b是否可用?我如何堅持a和b?持久性子類的非持久性超類

public Superclass { 

    private int a; 
    private Obj b; 

    // ... 
} 

@Entity 
public Subclass extends Superclass{ 
    @id int x; 

    public Subclass(int a, Obj b, int x){ 
     super(a, b); 
    } 
} 

回答

2

ab將不會被保留。

https://docs.oracle.com/javaee/6/tutorial/doc/bnbqn.html

非實體超類

實體可以具有非實體超類,而這些超能 是既抽象或具體。非實體超類 的狀態是非持久的,並且由實體類從非實體 超類繼承的任何狀態都是非持久的。非實體 超類可能不會用於EntityManager或Query操作。任何 非實體超類中的映射或關係註釋都被忽略了 。

+0

好吧,我該如何堅持下去呢? – drx

+0

請按照我的答案中的鏈接查看Mapped Superclasses部分。 – Thevenin

+0

雖然我不想堅持超類,但肯定會有另一種方式嗎?也許重寫變量a和b? – drx