के फ़िल्टर परिणामों के लिए एनोटेशन मेरे पास दो टेबल के बीच माता-पिता/बाल संबंध हैं, और मेरे जावा कक्षाओं में संबंधित मैपिंग है। टेबल लगभग कि तरह लग रहे:@OneToMany एसोसिएशन
A (ref number, stuff varchar2(4000))
B (a_ref number, other number, foo varchar2(200))
और जावा कोड:
@Entity
class A {
@Id
@Column(name = "REF")
private int ref;
@OneToMany
@JoinColumn(name = "A_REF", referencedName = "REF")
private Set<B> bs;
}
@Entity
class B {
@Id
@Column(name = "A_REF")
private int aRef;
@Id
@Column(name = "OTHER")
private int other;
}
यह ठीक काम करता है, लेकिन मैं पंक्तियों कि मैं बच्चे को मेज से पुनः प्राप्त पर एक फिल्टर जोड़ना चाहते हैं। क्वेरी जो उत्पन्न होता है जैसा दिखता है:
select a_ref, other, foo from B where a_ref = ?
और मैं चाहता हूँ यह हो:
select a_ref, other, foo from B where a_ref = ? and other = 123
अतिरिक्त फिल्टर केवल एक स्तंभ नाम और एक हार्ड-कोडेड मूल्य होगा। क्या हाइबरनेट एनोटेशन का उपयोग करने का कोई तरीका है?
मैंने @JoinFormula
पर देखा है, लेकिन इसके साथ मुझे हमेशा मूल तालिका से कॉलम नाम का संदर्भ देना होगा (name
जॉइनफॉर्मुला की विशेषता में)।
किसी भी सलाह के लिए अग्रिम धन्यवाद।
उत्सुक, क्यों न केवल पैरामीटर के रूप में इसे पास करें? 'जहां a_ref =? और अन्य =? '। यदि आपके पास ऐसा करने की ज़रूरत है तो मुझे उस मूल्य को हार्डकोड किया जा सकता है (हालांकि मैं कॉन्फ़िगर करने योग्य गुण प्रणाली का उपयोग करने का सुझाव दूंगा)। – ADTC