【问题标题】:JPQL/HQL ERROR: syntax error at end of input with LEFT JOINJPQL/HQL 错误:使用 LEFT JOIN 输入结束时出现语法错误
【发布时间】:2021-07-11 17:45:51
【问题描述】:

我在尝试执行以下查询时遇到 ERROR: syntax error at end of input

SELECT appointment FROM Appointment appointment LEFT JOIN DoctorFacilityAppointment dfa

谁能告诉我为什么会出现这个错误?

预约类

public class Appointment implements Serializable {
        
   private static final long serialVersionUID = 1L;
        
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private int id;
        
   @Column(name="start_time")
   private LocalDateTime startTime;
        
   @Column(name="is_valide")
   private boolean isValid;
        
   @ManyToOne
   @JoinColumn(name = "patient_id", referencedColumnName = "id")
   private Patient patient;
    
}

医生设施预约

public class DoctorFacilityAppointment implements Serializable {
        
   private static final long serialVersionUID = 1L;
        
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private int id;
        
   @ManyToOne
   @JoinColumn(name = "appointment_id", referencedColumnName = "id")
   private Appointment appointment;
        
   @ManyToOne
   @JoinColumn(name = "doctor_service_id", referencedColumnName = "id")
   private DoctorFacility doctorFacility;
}

【问题讨论】:

    标签: spring-boot hibernate jpa jpql


    【解决方案1】:

    JPQL/HQL join 应该引用适当实体的关联或组件/嵌入属性。

    所以,正确的查询应该是这样的:

    select app from DoctorFacilityAppointment dfa left join dfa.appointment app
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 2016-07-21
      • 2016-10-24
      • 2020-05-21
      • 2014-01-16
      相关资源
      最近更新 更多