मैं एक संघ द्वारा मैप है निम्नलिखित:हाइबरनेट OneToMany मापदंड रिटर्न डुप्लिकेट
@Entity
public class Parent
{
...
@Id
@Column(name = "parent_id")
private Long id;
@OneToMany(mappedBy = "parent")
@OrderBy("id")
private List<Child> children;
...
}
@Entity
public class Child
{
...
@Id
@Column(name = "child_id")
private Long id;
@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "parent_id")
private Parent parent;
@Column
private Boolean enabled;
...
}
मैं मानदंड एपीआई का उपयोग करने Parent
संस्थाओं जो एक या अधिक Child
साथ संस्थाओं वाले साइट के सभी की एक सूची प्रदान करना चाहते हैं विशेषता enabled=false
। मैं क्वेरी द्वारा फ़िल्टर किए जाने के लिए मैप किए गए children
संग्रह को पसंद नहीं करूंगा।
, निम्नलिखित दिया:
Criteria crit = session.createCriteria(Parent.class);
crit.createCriteria("children").add(Restrictions.eq("enabled", false));
List<Parent> result = crit.list();
return result;
हालांकि: अब तक मैं निम्नलिखित मानदंड क्वेरी का उपयोग कर रहा
Parent A
- Child A enabled=true
- Child B enabled=false
Parent B
- Child A enabled=false
- Child B enabled=false
:
Parent A
- Child A enabled=true
- Child B enabled=false
Parent B
- Child A enabled=false
- Child B enabled=false
Parent C
- Child A enabled=true
- Child B enabled=true
क्वेरी निम्नलिखित लौटना चाहिए यह
के समतुल्य लौट रहा हैParent A
- Child A enabled=true
- Child B enabled=false
Parent B
- Child A enabled=false
- Child B enabled=false
Parent B
- Child A enabled=false
- Child B enabled=false
Ie, इसके साथ प्रत्येक बच्चे तत्व के लिए (आबादी वाले बच्चों संग्रह के साथ) एक एकल अभिभावक रिकॉर्ड लौटा रहा है enabled=false
किसी को भी पता है कि कैसे केवल इस परिदृश्य में अद्वितीय माता पिता तत्वों वापस जाने के लिए?
सलाह की सराहना की, पी।