我有一个遗留的 MS SQL Server 2000 数据库,我正在尝试使用 JPA 进行映射(准确地说是 EclipseLink)。
我有一个表“CONTACT1”,其中有一个文本字段“KEY1”,可以是“联系人”或“资产”,我正在使用:
@Table(name = "CONTACT1")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "KEY1")
public abstract class Record {
将其映射到两个不同的类(联系人和资产)。
@Entity
@DiscriminatorValue(value = "Contact")
public class Contact extends Record {...}
和
@Entity
@DiscriminatorValue(value = "Asset")
public class Asset extends Record {...}
不幸的是,我发现了一些或记录丢失,经过进一步分析,我意识到一些联系人记录的“KEY1”字段设置为NULL。
虽然我可以运行更新查询来解决我想避免的问题 - 有没有办法将“NULL”值映射到 Contact 类?
如果做不到这一点,JPA 中是否有一种机制,我可以预先过滤记录集,使 JPA 相信该字段不是 NULL,但其中写有“联系人”?