在hibernate中查询父实体时如何筛选子实体

在hibernate中查询父实体时如何筛选子实体,hibernate,hql,parent-child,Hibernate,Hql,Parent Child,假设我有两个实体 public class EntityA { @id @GeneratedValue @Column(name="id") private Long id; @OneToMany(mappedBy="EntityA") @JoinColumn(name = "entityA_id") private List<EntityB> entityBList; } public class EntityB { @Col

假设我有两个实体

public class EntityA
{
   @id
   @GeneratedValue
   @Column(name="id")
   private Long id;

   @OneToMany(mappedBy="EntityA")
   @JoinColumn(name = "entityA_id")
   private List<EntityB> entityBList;


} 

public class EntityB
{
  @Column(name = "MODEL_PERCENT")
  private BigDecimal modelPercent;

  @ManyToOne
  @joincolumn(name="entityA_id") 
  private EntityA entityA;

}
我需要一种方法,可能是一个hql来获取EntityA,这样当我说EntityA.getEntityBList()时 它应该只返回1条记录(模型百分比为10(大于零)的记录)。

我尝试了下面的查询,但似乎不起作用。i、 它从entityB返回两条记录

select a from EntityA a,IN( a.EntityBList) b where a.id =:id and b.modelPercent>0   
任何关于一些例子的建议或指点都会大有帮助

谢谢

1)您在映射中有错误
实体A-同时具有属性和字段访问权限
EntityB-没有ID,同时具有属性和字段访问权限
2) HQL查询是

SELECT eA FROM EntityA LEFT JOIN eA.entityBList eB WHERE eA.id =:id AND eB.modelPercent > 0
1) 映射时出现错误
实体A-同时具有属性和字段访问权限
EntityB-没有ID,同时具有属性和字段访问权限
2) HQL查询是

SELECT eA FROM EntityA LEFT JOIN eA.entityBList eB WHERE eA.id =:id AND eB.modelPercent > 0

@llya我只有属性级别的所有注释。在示例代码中,为了清晰起见,我将其放在了不同的位置。我尝试了你前面提到的查询,但没有成功:(错误的查询结果。我在问题中使用了高亮字体above@llya我只有属性级别的所有注释。在示例代码中,为了清晰起见,我将其放在了不同的位置。我尝试了前面提到的查询,但不起作用:(错误的查询结果。我在上面的问题中使用了高亮字体