0

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

@DiscriminatorValue( null ) 一个

@DiscriminatorValue("Some-Value") B 扩展 A

关键是我想检查某个 DiscriminatorType.Char 列中是否有空值。我试着写“”(空字符串)作为值,也是空的。尼特工作。

4

2 回答 2

0

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

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

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

于 2012-10-29T05:19:08.480 回答
0

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

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

于 2012-10-29T14:11:53.797 回答