在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我只有属性级别的所有注释。在示例代码中,为了清晰起见,我将其放在了不同的位置。我尝试了前面提到的查询,但不起作用:(错误的查询结果。我在上面的问题中使用了高亮字体