Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

हाइबरनेट एक ही तालिका में दो बार शामिल होने के लिए मानदंड बनाएं - 2 अंतर त्रुटि के साथ 2 दृष्टिकोण की कोशिश की

org.hibernate.QueryException: duplicate association path की समस्या पर एक पुराना हाइबरनेट बग HHH-879 है 2005 को खोला गया और अभी भी खुला है...

अन्य समस्या समाधान के बिना बंद है HHH-7882

तो विकल्प 1) बल्कि उपयुक्त नहीं है।

लेकिन उपरोक्त बग की टिप्पणियों में एक उपयोगी समाधान exists . का उपयोग करके उल्लेख किया गया है

इसलिए दो बार sqlRestriction का इस्तेमाल करें exists . के साथ और प्रॉपर श्रेणी को फ़िल्टर करने वाली एक सहसंबद्ध उपश्रेणी। आपको केवल कंपनियां मिलेंगी दोनों श्रेणियों से जुड़ा है।

crit.add( Restrictions.sqlRestriction( 
  "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
  1, IntegerType.INSTANCE ) );
crit.add( Restrictions.sqlRestriction( 
  "exists (select null from Company_Customercategory a where {alias}.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)",
  6, IntegerType.INSTANCE ) );

यह निम्नलिखित क्वेरी की ओर जाता है जो सही परिणाम प्रदान करता है

select this_.COMPANY_ID as COMPANY_ID1_2_0_, this_.COMPANY_NAME as COMPANY_NAME2_2_0_ 
from COMPANIES this_ 
where exists (select null from Company_Customercategory a 
              where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID =  ?) and 
      exists (select null from Company_Customercategory a 
              where this_.company_Id = a.company_Id and a.CUSTOMERCATEGORYID = ?)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आरएसी में एएसएच अनुक्रम विवाद की पहचान

  2. प्रक्रिया में तालिका बनाएं

  3. IN कथन के साथ Oracle पैरामीटर्स?

  4. ओरेकल समवर्ती प्रबंधक - ई-बिजनेस सूट के लिए सीपी विश्लेषक

  5. ऑरैकल plsql varchar2 चर को आकार की आवश्यकता क्यों है लेकिन पैरामीटर नहीं है?