Java JPA-在@DiscriminatorValue中使用空值

Java JPA-在@DiscriminatorValue中使用空值,java,jpa,Java,Jpa,我想知道是否可以使用DiscriminatorValue以以下方式区分两个子类型: B扩展A @鉴别器值(null) A @鉴别器值(“某些值”) B扩展A 关键是我想检查在某个DiscriminatorType.Char列中是否有null值。 我尝试将“”(空字符串)作为值写入,并且也为null。Niether成功了。鉴别器值通常由实现设置,只有当实现无法正确区分两个类时,您才需要设置它,例如具有重复的类名或非常长的类名 例如,在Hibernate/Postgres中,默认的鉴别器是简单类名。

我想知道是否可以使用DiscriminatorValue以以下方式区分两个子类型: B扩展A

@鉴别器值(null) A

@鉴别器值(“某些值”) B扩展A

关键是我想检查在某个DiscriminatorType.Char列中是否有null值。
我尝试将“”(空字符串)作为值写入,并且也为null。Niether成功了。

鉴别器值通常由实现设置,只有当实现无法正确区分两个类时,您才需要设置它,例如具有重复的类名或非常长的类名

例如,在Hibernate/Postgres中,默认的鉴别器是简单类名。我唯一一次必须设置它是在运行时间超过数据库中名称限制的深度嵌套类中


因此,长话短说,除非必须指定鉴别器值,否则不要指定它。

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


如果您使用的是EclipseLink,您应该能够使用DescriptorConstomizer将空classIndicator映射添加到a的ClassDescriptor的InheritancePolicy。

这只是测试吗?它由
EntityManager
使用。您是否需要在查询中检查空值
鉴别器值