【问题标题】:path expected for join JPA Hibernate MySQL加入 JPA Hibernate MySQL 的预期路径
【发布时间】:2018-02-23 15:11:56
【问题描述】:

我在我的应用中使用复合 PK,其中包含 2 个表和一个连接表。

我为函数编写了这个查询:

   @Repository
public interface HospitalDoctorDao extends JpaRepository<HospitalDoctor, Integer>{

@Query("select hd from HospitalDoctor hd join hospital on hd.hospital_id=hospital.id join doctor on hd.doctor_id = doctor.id where hospital_id = ?1  and doctor_id = ?1")
HospitalDoctor findByHospitalIdAndDoctorId(int hospital_id, int doctor_id);
}

我收到错误 Path expected for file!在 MySQL 中,一切正常。在这种情况下,Hibernate 是如何工作的?我应该如何编写这个查询?这是我的连接表的@Entity:

    @Entity
@Table(name = "hospital_doctor")
public class HospitalDoctor {

    @Embeddable
    static class HosdocPK implements Serializable {
        private int hospitalId;
        private int doctorId;
    }

    @EmbeddedId
    @JsonBackReference
    public HosdocPK hosdocPK;



    @JsonManagedReference
    @MapsId("DoctorId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "doctorId", referencedColumnName = "id")
    private Doctor doctor;

    @JsonManagedReference
    @MapsId("HospitalId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "hospitalId", referencedColumnName = "id")
    private Hospital hospital;



    @Column(name = "Id")
    private int id;
    @Temporal(TemporalType.DATE)
    private Date contract_start_date;
    @Temporal(TemporalType.DATE)
    private Date contract_end_date;
    private String position;
    private String supervisor;
    private boolean part_time;


    Getters and setters
}

【问题讨论】:

    标签: mysql sql database hibernate jpa


    【解决方案1】:

    您的查询不正确。

    试试:

    select hd from HospitalDoctor hd where hd.hospital.id = ?1 and hd.doctor.id = ?2
    

    【讨论】:

    • 谢谢!那是工作,但现在我得到一个内部服务器错误可选的 int 参数“医生 ID”存在,但由于被声明为原始类型而无法转换为空值。考虑将其声明为相应原始类型的对象包装器。我正在使用带有“/api/hospitaldoctors/{hospital_id}/{doctor_id}”URL 的 Get 方法。我应该如何将其声明为对象包装器?
    • 是的,在你的@PathVariable(如果你使用Spring)中将它定义为整数。
    猜你喜欢
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2018-11-12
    • 2013-04-27
    • 2013-10-03
    • 1970-01-01
    相关资源
    最近更新 更多