चलो कहते हैं कि मैं एक INNER JOIN
दोनों के बीच संस्थाओं Foo
और Bar
क्या करना चाहते हैं:वापसी प्रकार मिलती
@Query("SELECT * FROM Foo INNER JOIN Bar ON Foo.bar = Bar.id")
List<FooAndBar> findAllFooAndBar();
वह इस तरह का वापसी प्रकार मजबूर करने के लिए संभव है?
public class FooAndBar {
Foo foo;
Bar bar;
}
जब मैं उस में, मैं इस त्रुटि मिलती है करने की कोशिश:
error: Cannot figure out how to read this field from a cursor.
मैं भी क्षेत्र नाम से मेल करने तालिका नाम aliasing की कोशिश की है, लेकिन है कि या तो काम नहीं किया।
यदि यह संभव नहीं है, तो मुझे एक संगत रिटर्न प्रकार को कैसे साफ करना चाहिए जिसमें दोनों इकाइयों के लिए सभी फ़ील्ड शामिल हों?
हाँ, के बाद से मेरी संस्थाओं (जैसे 'id') ... – pqvst
@pqvst इस नाम के कॉलम है कि काम नहीं करता है:" मैं कैसे सफाई से एक संगत निर्माण करना चाहिए वापसी प्रकार जिसमें दोनों संस्थाओं के लिए सभी फ़ील्ड शामिल हैं? " - या तो 'foo' या' bar' को '@ एम्बेडेड' होने के लिए चुनें और शेष फ़ील्ड सीधे 'FooAndBar' में रखें, या सभी फ़ील्ड सीधे 'FooAndBar' में रखें। परिणाम सेट में डुप्लिकेट कॉलम का नाम बदलने के लिए एसक्यूएल में 'AS' का उपयोग करें, और उन' AS' नामित कॉलम को मैप करने के लिए आवश्यकतानुसार '@ कॉलमइन्फो' का उपयोग करें, जिन्हें आप फ़ील्ड चाहते हैं। – CommonsWare
यही वही है जो मैं करना चाहता हूं ...मुझे बहुत "साफ" महसूस नहीं होता है:/ – pqvst