JPA@Inheritation(strategy=InheritanceType.JOINED):同一类的不同鉴别器值
是否可以将两个不同的鉴别器值映射到同一个具体的java类 大概是这样的:JPA@Inheritation(strategy=InheritanceType.JOINED):同一类的不同鉴别器值,inheritance,jpa,Inheritance,Jpa,是否可以将两个不同的鉴别器值映射到同一个具体的java类 大概是这样的: @DiscriminatorValue("4") @DiscriminatorValue("5") public class CartaImpl extends RapportoImpl implements Carta, Cloneable { 另一个问题:当没有为不引发此异常的指示符字段值提供类时,是否可能有默认实现 Missing class for indicator field value 为什么使用两个不
@DiscriminatorValue("4")
@DiscriminatorValue("5")
public class CartaImpl extends RapportoImpl implements Carta, Cloneable {
另一个问题:当没有为不引发此异常的指示符字段值提供类时,是否可能有默认实现
Missing class for indicator field value
为什么使用两个不同的值来表示同一件事?为什么要使用毫无意义的值?我将修复数据,而不是尝试映射无效数据:
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是有效的鉴别器值)。没有意义。如果该类的实例在DB中有两个可能的鉴别器值,则在同一继承树中创建两个不同的类,鉴别器的每个值一个,这在JPA中没有定义,但一些提供程序确实支持更复杂的指示符 如果使用EclipseLink,则可以使用类提取器定义自己的代码,以确定每行要使用的类
请参阅,,因为我使用的是lagacy数据库。我无法修复数据,但只能作为从属进程工作。我认为唯一的方法是使用@MappedSuperclass来保存实现和相关的子类。现在,超级类持有实现,而子类只定义自己的鉴别器值。