JPA(正確にはEclipseLink)でマップしようとしているレガシーMS SQL Server 2000データベースがあります。
「連絡先」または「資産」のいずれかになるテキストフィールド「KEY1」を持つテーブル「CONTACT1」があり、次を使用しています。
@Table(name = "CONTACT1")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "KEY1")
public abstract class Record {
2 つの異なるクラス (Contact と Asset) にマップします。
@Entity
@DiscriminatorValue(value = "Contact")
public class Contact extends Record {...}
と
@Entity
@DiscriminatorValue(value = "Asset")
public class Asset extends Record {...}
残念ながら、一部のレコードまたはレコードが欠落していることがわかりました。さらに分析した結果、一部の連絡先レコードの「KEY1」フィールドが NULL に設定されていることがわかりました。
更新クエリを実行して問題を修正することはできますが、それを避けたいのですが、その「NULL」値を Contact クラスにマップする方法はありますか?
それができない場合、JPAにレコードセットを事前にフィルタリングして、フィールドがNULLではないが「連絡先」が書き込まれていると信じさせるメカニズムはありますか?