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

हाइबरनेट (स्प्रिंगबूट) में बाएं जुड़ने और पेजिनेशन के साथ एसक्यूएल मूल क्वेरी लिखें

मैंने इसे सुलझा लिया...

क्वेरी को इस तरह दिखना चाहिए:

@Query(
        value = "SELECT * FROM \n" +
                "(institution INNER JOIN user ON institution.user_id = user.id) \n" +
                "LEFT JOIN \n" +
                "(SELECT * FROM \n" +
                "building_institutions \n" +
                "WHERE building_id = :userId)\n" +
                " AS reserved_institutions \n" +
                "ON reserved_institutions.institutions_user_id = kits_nwt.institution.user_id \n" +
                " where reserved_institutions.institutions_user_id IS null \n"
                + "ORDER BY ?#{#pageable}"
        ,
        countQuery = "SELECT count(*) FROM \n" +
                "(institution INNER JOIN user ON institution.user_id = user.id) \n" +
                "LEFT JOIN \n" +
                "(SELECT * FROM \n" +
                "building_institutions \n" +
                "WHERE building_id =:userId)\n" +
                " AS reserved_institutions \n" +
                "ON reserved_institutions.institutions_user_id = kits_nwt.institution.user_id \n" +
                "where reserved_institutions.institutions_user_id IS null \n" +
                "ORDER BY ?#{#pageable}",
        nativeQuery = true)
Page<Institution> findPotentialInstitutionsByBuildingId(@Param("userId") Long userId, Pageable pageable);

मुझे WHERE के पास लाइन 4 पर त्रुटि मिल रही थी, जब मेरी क्वेरी इस तरह दिख रही थी:

@Query(
        value = "SELECT username, password, description, location, title, user_id FROM (institution INNER JOIN user ON institution.user_id = user.id) LEFT JOIN\n" +
                "(SELECT * FROM building_institutions WHERE building_institutions.building_id = 1) AS reserved_institutions\n" +
                "ON reserved_institutions.institutions_user_id = kits_nwt.institution.user_id\n" +
                "WHERE reserved_institutions.institutions_user_id IS null ORDER BY ?#{#pageable}",
        nativeQuery = true)
Page<Institution> findPotentialInstitutionsByBuildingId(Long userId, Pageable pageable);

और ऐसा इसलिए था क्योंकि मैंने countQuery नहीं जोड़ा था @Query . के लिए पैरामीटर एनोटेशन।

आप सभी का बहुत-बहुत धन्यवाद जिन्होंने मदद करने की कोशिश की।

मुझे उम्मीद है कि मैं किसी और को कई घंटों के दुख से बचा सकता हूं।

प्रोत्साहित करना! :)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django 1.11.4 . में त्रुटि ('datetime.datetime' ऑब्जेक्ट में कोई विशेषता नहीं है 'विभाजन')

  2. एक्लिप्स ऑब्जेक्ट को डेटाटाइप टेक्स्ट के लिए डिफ़ॉल्ट मैपिंग प्रकार के रूप में क्यों प्रस्तावित करता है?

  3. स्प्रिंगडाटाजेपीए वनटूवन रिलेशनशिप को सेव करता है, चाइल्ड रो को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है

  4. ORD () उदाहरण – MySQL

  5. ActiveRecord/रेल बनाना वास्तविक mysql TIMESTAMP कॉलम का उपयोग करता है