मैं शामिल तालिकाओं पर सॉर्टिंग का उपयोग नहीं कर सकता। मुझे समझाने दो;हाइबरनेट मानदंड api तालिका समस्या में शामिल हों
मेरे पास तीन टेबल हैं। उपयोगकर्ता, भूमिकाएं और user_roles। मेरी जेपीए इकाइयां उपयोगकर्ता, उपयोगकर्तारोल, उपयोगकर्ता रोल पीके, भूमिका हैं।
|User | | UserRole | | UserRolePK | | Role |
|--------| |----------| -------------- --------
|id | | pk | | user | | id |
|name | | role | | name |
वास्तव में उत्पादन है कि मैं चाहता हूँ: "का चयन करें * user_roles उर शामिल हों उन यू पर u.ID = ur.UserID आदेश u.name करके से,"
इसलिए मैं हाइबरनेट मानदंड API का उपयोग करने का प्रयास करता हूं। की pk.user.name: models.UserRole
मैं कैसे तालिकाओं में शामिल होने पर मापदंड एपीआई का उपयोग कर सकते हैं
CriteriaImpl criteria = (CriteriaImpl) session.createCriteria(UserRole.class);
criteria.addOrder(Order.asc("pk.user.name"));
List userRoles = criteria.list();
त्रुटि संपत्ति हल नहीं कर सका है?
अच्छा लगता है लेकिन यह काम नहीं करता है। अज्ञात कॉलम 'a2x2_।'ऑर्डर क्लॉज' नाम ' और यह एसक्यूएल क्वेरी है जो मानदंड API द्वारा उत्पन्न की गई थी। __ "इस__ रोलिड को RoleID614_0_ के रूप में चुनें, this_. user_roles से उपयोगकर्ता आईडी 614_0_ के रूप में यूज़र आईडी__ 2 ए 2 एक्स # 3 –
द्वारा मैपिंग के साथ कुछ गलत है। एक उपनाम बनाना सामान्य रूप से तालिका में शामिल होना चाहिए, अगर संपत्ति एक से एक रिश्ते है। आपके टेबल ग्राफिक्स में कोई संबंध नहीं है। शायद आपको उन्हें जोड़ना चाहिए या प्रश्न में मैपिंग जोड़ना चाहिए। – Reboot