2011-10-10 69 views
0

將兩個不同鑑別器值映射到同一個具體java類是否可能?JPA @Inheritance(strategy = InheritanceType.JOINED):同一類的不同鑑別器值

事情是這樣的:

@DiscriminatorValue("4") 
@DiscriminatorValue("5") 
public class CartaImpl extends RapportoImpl implements Carta, Cloneable { 

另一個問題是:是有可能有一個默認的實現時提供了不提出這個異常的指標字段值沒課?

Missing class for indicator field value 

回答

1

沒有意義。如果該類的實例在數據庫中具有兩個可能的鑑別符值,則在同一繼承樹中創建兩個不同的類,每個鑑別符值一個

+0

剛剛做完了。現在超類持有實現,而子類只定義自己的鑑別器值。 –

0

爲什麼用兩個不同的值來表示同樣的事情?爲什麼使用並不意味着什麼的價值觀?我修復數據,而不是試圖去映射數據無效:

update rapporto set discriminator = '4' where discriminator = '5'; 
update rapporto set discriminator = '0' where discriminator not in ('0,', '1', '2', '3', '4'); 

(假設0是默認實體的鑑別器,和0,1,2,3,4是有效的鑑別器的值)。

+0

因爲我使用的是滯後數據庫。我無法修復數據,但只能作爲從屬進程。我認爲唯一的方法是擁有一個@MappedSuperclass來保存實現和相關的子類。 –

相關問題