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

हाइबरनेट - क्या 1 के खिलाफ 2 कॉलम में शामिल होने का कोई तरीका है?

समाधान 1

Table1 . पर डेटाबेस व्यू बनाएं जो विदेशी कुंजी संदर्भित Table2 . को उजागर करता है . अपनी पोस्ट की गई क्वेरी से विदेशी कुंजी प्रोजेक्ट करें जिसे आप वैसे भी देखने के लिए उपयोग करेंगे। फिर अपनी इकाई को दृश्य में मैप करें।

समाधान 2

जुड़ने का फ़ॉर्मूला इस्तेमाल करें :

उदाहरण के लिए, Table1 . में मैप की गई इकाई में Table2 . में मैप की गई इकाई के साथ कई-से-एक संबद्धता को परिभाषित करें (आपका उपयोग मामला प्रतीत होता है):

@ManyToOne
@JoinColumnsOrFormulas({
      @JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
    })
private Entity2 entity2;

हालांकि, कुछ समय के लिए हाइबरनेट में जुड़ने के सूत्र बहुत नाजुक प्रतीत होते हैं (मैं यह काम केवल कई-से-एक संघ के लिए करने में कामयाब रहा और मुझे Entity2 बनाना पड़ा। Serializable लागू करें; अन्यथा यह काम नहीं किया और कुछ अजीब फेंक दिया NullPointer- और ClassCastException एस)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा से एक MySQL संग्रहीत कार्यविधि निष्पादित नहीं कर सकता

  2. कैसे mysql में levenshtein समारोह जोड़ने के लिए?

  3. चेतावनी:mysql_result() पैरामीटर 1 को संसाधन, बूलियन दिए जाने की अपेक्षा करता है

  4. DECLARE CURSOR FOR पर सिंटैक्स त्रुटि

  5. PHP सरणी के साथ MySQL चयन कथन