我有三个实体:
@Entity
Class Parent{
//This id can be belong to two references
@Basic
@Column(name="reference_id")
@getter @setter private Integer referenceId;
//This variable control the source where the Id is belong
@Basic
@Column(name="reference_a")
@getter @setter private boolean referenceA
@ManyToOne
//If referenceA == true, fill sourceA
@getter @setter private ReferenceA sourceA;
@ManyToOne
//if referenceB== false, fill sourceB
@getter @setter private ReferenceB sourceB;
}
@Entity
//Here, doesn't exist the reference to the parent Entity
public class ReferenceA{
@getter @setter private Id;
}
@Entity
//Here either exists the reference to the parent Entity
public class ReferenceB{
@getter @setter private Id;
}
问题在于,如果在父级中referenceA为true,则需要获取Object sourceA;如果referenceA为false,则需要获取sourceB。
我尝试使用@Where
和Filter
,但同时过滤了SourceA或SourceB端。
有什么建议吗?