我在项目中有以下对象映射。一个联系人可以有多个来自typeA和typeB的引号。
@Entity
@Table(name = "t_ind_contact")
public class Contact implements Serializable {
@Id
@Column(name = "id", unique = true)
private Long id;
@OneToMany
private List<Quote> quotes;
}
抽象引用类。
@Entity
@Inheritance
@DiscriminatorColumn(name = "app_code")
@Table(name = "t_ind_quote")
public abstract class Quote implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
private long id;
@OneToMany
@JoinColumn(name = "contact_id")
private Contact contact;
@Column(name = "app_code", insertable = false, updatable = false)
private int appCode;
}
TypeA引用类
@Entity
@DiscriminatorValue("1")
public class TypeAQuote implements Serializable {
private static final long serialVersionUID = 1L;
}
TypeB引用类
@Entity
@DiscriminatorValue("2")
public class TypeBQuote implements Serializable {
private static final long serialVersionUID = 1L;
}
此映射适用于所有操作。但是对于某些操作,我们只需要带有typeA引号的联系对象。截至目前,我们将在系统从数据库加载数据后过滤typeA引号。
有没有办法只使用typeA引号填充联系人对象?我的意思是即使生成的查询也只会加载typeA引号。