Mysql 如何在命名查询中编写联接?
我试图编写此查询,但它引发了一个异常Mysql 如何在命名查询中编写联接?,mysql,database,hibernate,Mysql,Database,Hibernate,我试图编写此查询,但它引发了一个异常 @NamedQueries({ @NamedQuery(name = "doctor_searchDoctor", query= "SELECT d FROM Doctor d " + "WHERE ((d.englishName = :P_NAME_EN OR :P_NAME_EN = '-1' ) " + "AND d.id IN (select
@NamedQueries({
@NamedQuery(name = "doctor_searchDoctor",
query= "SELECT d FROM Doctor d "
+ "WHERE ((d.englishName = :P_NAME_EN OR :P_NAME_EN = '-1' ) "
+ "AND d.id IN (select c.doctorId from Clinic c "
+ "JOIN DoctorSpecializations s "
+ " where ((c.cityId = :D_CITY_ID OR :D_CITY_ID = -1 ) AND (s.specializationId = :D_SPECIALIZATION_ID OR :D_SPECIALIZATION_ID = -1))))"
),
})
在调试代码时,我发现了异常
@NamedQueries({
@NamedQuery(name = "doctor_searchDoctor",
query= "SELECT d FROM Doctor d "
+ "WHERE ((d.englishName = :P_NAME_EN OR :P_NAME_EN = '-1' ) "
+ "AND d.id IN (select c.doctorId from Clinic c "
+ "JOIN DoctorSpecializations s "
+ " where ((c.cityId = :D_CITY_ID OR :D_CITY_ID = -1 ) AND (s.specializationId = :D_SPECIALIZATION_ID OR :D_SPECIALIZATION_ID = -1))))"
),
})
org.hibernate.hibernateeexception:命名查询中的错误:doctor\u searchDoctor
您的WHERE d.englishName blah中缺少一个,请在Clinic c之后加上一个完整的语句是select c.doctorId from Clinic c JOIN DoctorSpecializations