Java JPA 2.5 CriteriaQuery条件子实体

Java JPA 2.5 CriteriaQuery条件子实体,java,jpa,eclipselink,criteria,Java,Jpa,Eclipselink,Criteria,我有一个实体 @javax.persistence.Table(name = "CONTACT") public class ContactEntity { @OneToMany(cascade = CascadeType.ALL, mappedBy = "contact") private List<PhoneEntity> phones; ... } @Table(name = "CONTACT_PHONE") @Entity public class

我有一个实体

@javax.persistence.Table(name = "CONTACT")
public class ContactEntity {
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "contact")
    private List<PhoneEntity> phones;

    ...
}

@Table(name = "CONTACT_PHONE")
@Entity
public class PhoneEntity {
    @Column(name = "DEVICE_TYPE")
    private String deviceType;

    ...
}

如果您向某个联系人实体索要其电话,无论您以何种方式获得该联系人实体,您都会得到该联系人实体的所有电话。这就是你们班的合同:一个联系人有很多电话,可以使用getPhones方法使用

如果您想要联系人实体的电话子集,则不应获取联系人并获取其电话。您应该使用一个返回另一个集合的查询,该集合只包含符合条件的电话。例如:

select p from Phone p where p.contact = :contact and p.deviceType = :deviceType

或者相同的查询被criteria API混淆。

当我选择我的实体时:哪个实体,使用哪个代码?我添加了selection.JPA 2.5的代码示例?世界跆拳道联盟?JPA是1.0、2.0或2.1
select p from Phone p where p.contact = :contact and p.deviceType = :deviceType