mysql - 如何在命名查询中编写联接?

标签 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 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.HibernateException: Errors in named queries: doctor_searchDoctor

最佳答案

您在 WHERE 中缺少 ) ((d.​​englishName blah put one after Clinic c)

关于mysql - 如何在命名查询中编写联接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011785/

相关文章:

mysql - 依赖于同一个表的表之间的数据库关系

java - H2数据库存储机制

java - @GenerateValue ID 尝试复制现有数据库 MySQL Java 中条目的主键

mysql - 如何在 SQL 中增加文本值

mysql:每个子查询结果返回列

java - 使用数据库中的数据填充 JTable

mysql - 有没有办法使用@GeneratedValue 使其同时适用于序列和自动递增?

java.lang.NoSuchMethodError : javax. 持久性.OneToMany.orphanRemoval()

java - Spring Data JPA - 按 Id 绑定(bind)而不是对象

hibernate - Spring + Hibernate session 管理