ฉันมี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
ทำOrder
s ปรากฏหลายครั้งในรายการผลลัพธ์?
@OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
public List<OrderTransaction> getOrderTransactions() {
return orderTransactions;
}
ฉันจะต้องเปลี่ยนรหัสเกณฑ์อย่างไรเพื่อให้ได้ผลลัพธ์เดียวกันด้วยการตั้งค่าใหม่