有人知道它失败的原因吗?
@Query("SELECT CASE WHEN COUNT(x) > 0 THEN true ELSE false END FROM City a WHERE x.parking= :parking AND x.section= :section AND x.district IN (SELECT uc FROM DistrictCity uc WHERE uc.zone = :zone AND :user IN uc.users)")
Boolean carsExist(String parking, Section section, String zone, User user);
City (class)
String parking
Section section
DistrictCity district
DistrictCity (class)
String Zone
List<User> users (Many to Many relation)
它没有给出语法问题,但它给了我错误";缺少表达式(ORA-00936(";问题似乎出在:用户in uc.users
我认为最后一位不正确。这应该有效:
SELECT uc FROM DistrictCity uc JOIN uc.users u WHERE uc.zone = :zone AND u = :user
因此,整个查询变成:
@Query("SELECT CASE WHEN COUNT(x) > 0 THEN true ELSE false END FROM City a WHERE x.parking= :parking AND x.section= :section AND x.district IN (SELECT uc FROM DistrictCity uc JOIN uc.users u WHERE uc.zone = :zone AND u = :user)")