1
比方說,我有兩個實體如何過濾子實體而quering父休眠
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子句的所有fetch EntityBs'的模型百分比大於0.
我不想使用過濾器,因爲此要求僅適用於此特定情況。
例如,數據:
EntitytA table
id
1
EntityB table
id EntitytA_Id modelPercent
1 1 10
2 1 0
我需要的方式,可能是獲取EntityA的HQL所以,當我說EntityA.getEntityBList() 它應該只返回1的記錄(一個其模型%的是10(大於零))。
我試過下面的查詢,但它似乎沒有工作。即它返回來自實體B的記錄
select a from EntityA a,IN(a.EntityBList) b where a.id =:id and b.modelPercent>0
任何建議或指向某些示例會有很大的幫助。
感謝
@llya我在屬性所有註釋只有水平。在示例代碼中,爲了清晰起見,我將它放在了不同的地方。我試過了前面提到過的查詢,不起作用:( – shashikanthb
)讓我也編輯問題中的代碼 – shashikanthb
錯誤或錯誤的結果? – Ilya