Mysql
 sql >> база данни >  >> RDS >> Mysql

JPA заявка в множество таблици с връзка много към много

Мисля, че заявката ви може да е грешна, което може да е причината за проблема.

В момента използвате:

 SELECT h FROM Hospital h
     INNER JOIN Medical_Service m ON h.hospital_id = m.hospital_id
     WHERE h.Postcode = :postcode AND m.Medical_name = :medical

Проблемът може да е, че Medical_Service не съдържа поле Hospital_id (използвано в JOIN).

Ако сте щастливи да използвате местни заявки, можете да направите това:

 SELECT * FROM Hospital WHERE Postcode = 3000 AND Hospital_id IN
    (SELECT Hospital_id FROM Hospital_Medical hm INNER JOIN Medical_Service m ON hm.Medical_id = m.Medical_id
    where Medical_name = 'Emergency')

Вътрешният SELECT получава всички Hospital_id за болници, които предлагат спешна помощ. След това външният избор избира всички болници, в които Hospital_id е във вътрешния SELECT (т.е. те предлагат спешна помощ), но също и само тези с пощенски код 3000.

За да използвате собствена заявка, трябва да направите нещо подобно:

    int postcode = 3000;
    String service = "Emergency";

    StringBuilder sb = new StringBuilder(); 
        sb.append("SELECT * FROM Hospital WHERE Postcode = ");
        sb.append(postcode);
        sb.append("AND Hospital_id IN SELECT Hospital_id FROM Hospital_Medical hm INNER JOIN "
                + "Medical_Service m ON hm.Medical_id = m.Medical_id where Medical_name = '");
        sb.append(service);
        sb.append("')");

    String queryString = sb.toString();
    Query query = em.createNativeQuery(queryString);
    List<Hospital> result = query.getResultList();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конфигурирам Rails за достъп без парола до отдалечена база данни

  2. Как да се свържете с отдалечен mysql през ssh тунел в приложение за пролетно зареждане

  3. Условна разделена трансформация:Експортирайте данни от SQL Server в Oracle и MySQL бази данни

  4. Търсене със заместващи знаци в пълнотекстово търсене на MySQL

  5. MySQL добавя полета към Enum