我有一个场景,我在hibernate中实现了一个实体层次结构。 它是InheritanceType.JOINED
家长班:
@Entity
@Table(name = "LOY")
@Inheritance(strategy=InheritanceType.JOINED)
public class Loy implements Serializable
子类边界
@Entity
@Table(name = "LOY_BOUNDARY")
@PrimaryKeyJoinColumn(name="ID")
public class LoyBoundary implements Serializable
儿童班级百分比
@Entity
@Table(name = "LOY_PERCENTAGE")
@PrimaryKeyJoinColumn(name="ID")
public class LoyPercentage implements Serializable
@ManyToOne 中客户实体类 链接 Loy实体类。 客户一次只能链接到一个Loy。
我想要达到的目标是,我想使用唯一ID(护照号码)查询客户类,然后通过@获取特定客户的Loy Customer实体中的ManyToOne映射。
我遇到的问题是我不知道Loy的哪个子类与客户有关。
答案 0 :(得分:1)
我会和一位访客一起去。如果instanceof
是延迟加载的,则使用ManyToOne
将不起作用,因为Loy的实际类型不是您的任何子类,而是扩展Loy类的Hibernate代理。实际上,Hibernate无法从客户中的loy ID中知道它指的是哪种Loy。
无论如何,访客更加OO和清洁。