2011-10-10 70 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来保存实现和相关的子类。 –

相关问题