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

स्प्रिंग बूट / JPA / mySQL - कई से एक संबंध बहुत अधिक SQL क्वेरी बनाता है

यह एक n + 1 हो सकता है समस्या।

आप एक JOIN FETCH इसे ठीक करने के लिए अपनी जेपीए क्वेरी में।

अपनी जेपीए रिपॉजिटरी को इस तरह अपडेट करें

public interface MessagesRepository extends CrudRepository<Message, Long> { 
    
    @Query("Select m from Message m join fetch m.sender ms join fetch m.receiver mr where ms.id = :senderId or mr.id = :receiverId order by m.time desc")
    List<Message> findBySenderIdOrReceiverIdOrderByTimeDesc(Long senderId, Long receiverId);

}

अधिक विस्तृत विवरण के लिए देखें यह उत्तर।

पुनश्च: मैंने क्वेरी का परीक्षण नहीं किया है।




  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. GB में mysql तालिका का आकार कैसे प्राप्त करें

  4. MySQL - साइकिल चलाने के साथ अगला/पिछला आईडी

  5. मुझे php . का उपयोग करके दिनांक प्रारूप को बदलने की आवश्यकता है