আমার একটি Order
ক্লাস রয়েছে যার একটি তালিকা রয়েছে OrderTransactions
এবং আমি একে একে একাধিক হাইবারনেট ম্যাপিংয়ের সাথে ম্যাপ করেছি:
@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
ফলাফলগুলি তালিকায় একাধিক বার উপস্থিত হয় কেন?
@OneToMany(targetEntity = OrderTransaction.class, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
public List<OrderTransaction> getOrderTransactions() {
return orderTransactions;
}
নতুন সেটিংয়ের সাথে একই ফলাফলটিতে পৌঁছানোর জন্য আমার মানদণ্ডের কোডটি কীভাবে পরিবর্তন করতে হবে?