Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Spring Boot / JPA / mySQL - mối quan hệ nhiều đối một tạo ra quá nhiều truy vấn SQL

Đây có thể là n + 1 vấn đề.

Bạn có thể sử dụng JOIN FETCH trong truy vấn JPA của bạn để sửa lỗi này.

Cập nhật kho lưu trữ JPA của bạn như vậy

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);

}

Để có lời giải thích chi tiết hơn, hãy xem cái này câu trả lời.

Tái bút: Tôi đã không thử nghiệm truy vấn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xử lý một số lượng lớn các mục nhập cơ sở dữ liệu với phân trang bị chậm lại theo thời gian

  2. Bỏ hai ký tự cuối cùng của một cột trong MySQL

  3. MySQL sai đầu ra với mệnh đề IN và tham số

  4. Mysql Cải thiện Hiệu suất Tìm kiếm với các ký tự đại diện (%%)

  5. Chuyển đổi mã MySQL thành Access:GROUP_CONCAT và một bộ ba JOIN