Hibernate Criteria ส่งคืนเด็กหลายครั้งด้วย FetchType.EAGER
ฉันมีOrderคลาสที่มีรายชื่อOrderTransactionsและฉันแมปด้วยการแมป Hibernate แบบหนึ่งต่อหลายดังนี้: @OneToMany(targetEntity = OrderTransaction.class, cascade = CascadeType.ALL) public List<OrderTransaction> getOrderTransactions() { return orderTransactions; } เหล่านี้Orderยังมีฟิลด์orderStatusซึ่งใช้สำหรับการกรองด้วยเกณฑ์ต่อไปนี้: public List<Order> getOrderForProduct(OrderFilter orderFilter) { Criteria criteria = getHibernateSession() .createCriteria(Order.class) .add(Restrictions.in("orderStatus", orderFilter.getStatusesToShow())); return criteria.list(); } สิ่งนี้ได้ผลและผลลัพธ์ก็เป็นไปตามที่คาดหวัง ตอนนี้ที่นี่เป็นคำถามของฉัน : ทำไมเมื่อฉันตั้งดึงข้อมูลประเภทอย่างชัดเจนที่จะEAGERทำOrders ปรากฏหลายครั้งในรายการผลลัพธ์? @OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL) public List<OrderTransaction> getOrderTransactions() { …