假设我有两个实体
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;
}
我现在想要的是,当我获取 EntityA 时,我想添加一个 where 子句来获取 modelPercent 大于 0 的所有 EntityB。
我不想使用过滤器,因为此要求仅适用于这种特殊情况。
例如数据:
EntitytA table
id
1
EntityB table
id EntitytA_Id modelPercent
1 1 10
2 1 0
我需要一种方法,可能是获取 EntityA 的 hql,这样当我说 EntityA.getEntityBList() 时,它应该只返回 1 条记录(其模型百分比为 10(大于零))。
我尝试了以下查询,但它似乎不起作用。即它返回来自 entityB 的两个记录
select a from EntityA a,IN( a.EntityBList) b where a.id =:id and b.modelPercent>0
对某些示例的任何建议或指示都会有很大帮助。
谢谢