是否有可能将两个不同的鉴别器值映射到同一个具体的java类?
这样的事情:
@DiscriminatorValue("4")
@DiscriminatorValue("5")
public class CartaImpl extends RapportoImpl implements Carta, Cloneable {
另一个问题:如果没有为指标字段值提供类而不提出此异常,是否可以使用默认实现?
Missing class for indicator field value
答案 0 :(得分:1)
没有任何意义。如果该类的实例在DB中具有两个可能的鉴别器值,则在同一继承树中创建两个不同的类,每个鉴别器的值一个
答案 1 :(得分: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是有效的鉴别器值)。
答案 2 :(得分:0)
这在JPA中没有定义,但有些提供商确实支持更复杂的指标。
如果使用EclipseLink,您可以使用ClassExtractor定义自己的代码,以确定每行使用的Class。
请参阅http://en.wikibooks.org/wiki/Java_Persistence/Inheritance#No_class_discriminator_column