มีสองคลาส A และ B โดยคลาส A มีคอลเลกชันของวัตถุคลาส B อยู่ในนั้น คลาส B มีฟิลด์ X ฉันต้องการที่จะส่งคืนรายการออบเจ็กต์ของคลาส A ที่มีออบเจ็กต์ประเภท B ในคอลเลกชันซึ่งมีค่าเฉพาะของคุณสมบัติ X เป็นไปได้ไหม
จนถึงตอนนี้ฉันได้ลองบางอย่างเช่น:
Root<A> root = criteriaQuery.from(A.class);
criteriaQuery.select(root);
criteriaQuery.where(root.get("bCollection").get("x").in("value"))
แต่แน่นอนว่ามันไม่ได้ผล จะจัดการเรื่องนี้อย่างไร? คลาส B ถูกแมปเป็นองค์ประกอบแบบซ้อนดังนี้:
<set name="bCollection" table="bCollection">
<key column="a_id" />
<composite-element
class="example.B">
<many-to-one name="x" column="b_id" not-null="false"
cascade="none" foreign-key="b_fk" />
</composite-element>
</set>
ฉันหวังว่าจะมีคนรู้... ขอบคุณ!