JPA过滤器实体嵌套对象列表
我正在使用JPA2.1。我有三个实体:JPA过滤器实体嵌套对象列表,jpa,Jpa,我正在使用JPA2.1。我有三个实体:Dr01、Dr02和Dr03,结构如下: public class Dr01 implements Serializable { @OneToMany(cascade = CascadeType.ALL, mappedBy = "dr01") private List<Dr02> dr02List; } public class Dr02 implements Serializable { @OneToMany(ca
Dr01
、Dr02
和Dr03
,结构如下:
public class Dr01 implements Serializable {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dr01")
private List<Dr02> dr02List;
}
public class Dr02 implements Serializable {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dr02")
private List<Dr03> dr03List;
@JoinColumn(name = "DR2CLM", referencedColumnName = "DR1CLM", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Dr01 dr01;
}
public class Dr03 implements Serializable {
@JoinColumns({
@JoinColumn(name = "DR3CLM", referencedColumnName = "DR2CLM", insertable = false, updatable = false),
@JoinColumn(name = "DR3PTFN", referencedColumnName = "DR2PTFN", insertable = false, updatable = false)})
@ManyToOne(optional = false)
private Dr02 dr02;
private elementOBJ element;
}
public class elementOBJ implements Serializable {
@Column(name = "XXX")
private int id;
@Column(name = "YYY")
private int status;
}
public类Dr01实现可序列化{
@OneToMany(cascade=CascadeType.ALL,mappedBy=“dr01”)
私人名单;
}
公共类Dr02实现了可序列化{
@OneToMany(cascade=CascadeType.ALL,mappedBy=“dr02”)
私人名单;
@JoinColumn(name=“DR2CLM”,referencedColumnName=“DR1CLM”,insertable=false,updateable=false)
@多通(可选=假)
私人Dr01 Dr01;
}
公共类Dr03实现可序列化{
@连接柱({
@JoinColumn(name=“DR3CLM”,referencedColumnName=“DR2CLM”,insertable=false,updateable=false),
@JoinColumn(name=“DR3PTFN”,referencedColumnName=“DR2PTFN”,insertable=false,updateable=false)})
@多通(可选=假)
私人Dr02 Dr02;
私有元素obj元素;
}
公共类elementOBJ实现了可序列化{
@列(name=“XXX”)
私有int-id;
@列(name=“YYY”)
私人身份;
}
我想从Dr01
中进行选择,只获取状态字段中包含值为1的元素对象的Dr03
对象
如何检索按状态值筛选的dr03List?(选择后未过滤)
提前感谢。可能有帮助的选项:
你到底想要什么?如果您只需要具有特定element.status值的Dr03实体,您是否尝试过“从Dr03 dr3中选择dr3,其中dr3.element.status=:status”?@Chris:我知道我可以这样做,但我只想选择Dr01(根据其Id)并获取Dr02和Dr03,但要对它们进行筛选。你明白我的意思吗?不太明白。如果您的意思是希望获取特定的Dr01并过滤该实体中的集合,那么这不在JPA的范围内,因为返回的托管实体旨在反映数据库中的内容。您可以直接使用所需的筛选器查询集合,而不是遍历Dr01.dr02List关系。