मान लें कि आइटम और बोली संस्थाएं हैं: एक आइटम में कई बोलियां हैं। वे एक ठेठ माता पिता/बच्चे रिश्ते में हाइबरनेट में मैप किया जाता है:मानदंड उत्सुक-संग्रहित संग्रह एन + 1 से बचने के लिए
<class name="Item" table="ITEM">
...
<set name="bids" inverse="true">
<key column="ITEM_ID"/>
<one-to-many class="Bid"/>
</set>
</class>
कैसे जब बाद इस क्वेरी निष्पादित किया जाता है प्रत्येक मद की बोलियों का उपयोग करने की कोशिश कर रहा n + 1 चयन बच सकते हैं?
List<Item> items = session.createCriteria(Item.class)
.createAlias("bids", "b").
.add(Restrictions.gt("b.amount", 100)).
.list();
नोट मैं एक उत्सुक बोलियों के लिए लेकिन संग्रह पर एक और प्रतिबंध के साथ प्राप्त करते समय की जरूरत है (b.amount> 100)
मैं असफल निम्नलिखित की कोशिश की है:
List<Item> items = session.createCriteria(Item.class)
.setFetchMode("bids", FetchMode.JOIN).
.createAlias("bids", "b").
.add(Restrictions.gt("b.amount", 100)).
.list();
List<Item> items = session.createCriteria(Item.class)
.createCriteria("bids")
.add(Restrictions.gt("amount", 100)).
.list();
http://stackoverflow.com/questions/617145/hibernate-fetching-strategy-when-to-use-join-and-when-to-use-select मुझे लगता है कि इससे पहले पूछा जा रहा है .... –