我想知道我是否可以使用DiscriminatorValue以下列方式设置两个子类型: B延伸A
@DiscriminatorValue(的空) 甲
@DiscriminatorValue( “一些价值”) B延伸A
关键是我要检查某些DiscriminatorType.Char列中是否存在 null 值。 我试着写“”(空字符串)作为值,也是null。 Niether工作了。
答案 0 :(得分:0)
DiscriminatorValue通常由实现设置,您只需要在实现无法正确分辨两个类时设置它,例如具有重复的类名或非常长的类名。
例如,在Hibernate / Postgres中,默认的鉴别符是简单的类名。我唯一需要设置它的是深度嵌套的类,其运行时间长于数据库中的名称限制。
所以,长话短说,除非你必须,否则不要指定鉴别器值。
答案 1 :(得分:0)
注释不允许空指示符,规范也不直接支持它。
如果您正在使用EclipseLink,您应该能够使用DescriptorCustomizer将空classIndicator映射添加到A的ClassDescriptor的inhertiancePolicy。