0

DiscriminatorValue を使用して、次の方法で 2 つのサブタイプを区別できるかどうか疑問に思っていました: B は A を拡張します。

@DiscriminatorValue( null ) A

@DiscriminatorValue("Some-Value") B は A を拡張します

ポイントは、ある DiscriminatorType.Char 列にnull値があるかどうかを確認したいということです。値として "" (空の文字列) と null を書いてみました。ニーターは働いた。

4

2 に答える 2

0

アノテーションは null インジケーターを許可しておらず、仕様もそれを直接サポートしていません。

EclipseLink を使用している場合は、DescriptorCustomizer を使用して、A の ClassDescriptor の inhertiancePolicy に null classIndicator マッピングを追加できるはずです。

于 2012-10-29T14:11:53.797 に答える
0

DiscriminatorValue は通常、実装によって設定されます。重複したクラス名や非常に長いクラス名があるなど、実装が 2 つのクラスを適切に区別できない場合にのみ設定する必要があります。

たとえば、Hibernate/Postgres では、デフォルトの識別子は単純なクラス名です。私がこれまでに設定しなければならなかったのは、データベース内の名前の制限よりも長く実行される、深くネストされたクラスの場合だけです。

したがって、簡単に言えば、必要な場合を除き、識別子の値を指定しないでください

于 2012-10-29T05:19:08.480 に答える