JPA - 在@DiscriminatorValue中使用空值

时间:2012-10-28 15:41:54

标签: java jpa

我想知道我是否可以使用DiscriminatorValue以下列方式设置两个子类型: B延伸A

@DiscriminatorValue(的) 甲

@DiscriminatorValue( “一些价值”) B延伸A

关键是我要检查某些DiscriminatorType.Char列中是否存在 null 值。 我试着写“”(空字符串)作为值,也是null。 Niether工作了。

2 个答案:

答案 0 :(得分:0)

DiscriminatorValue通常由实现设置,您只需要在实现无法正确分辨两个类时设置它,例如具有重复的类名或非常长的类名。

例如,在Hibernate / Postgres中,默认的鉴别符是简单的类名。我唯一需要设置它的是深度嵌套的类,其运行时间长于数据库中的名称限制。

所以,长话短说,除非你必须,否则不要指定鉴别器值。

答案 1 :(得分:0)

注释不允许空指示符,规范也不直接支持它。

如果您正在使用EclipseLink,您应该能够使用DescriptorCustomizer将空classIndicator映射添加到A的ClassDescriptor的inhertiancePolicy。