加入JPA Hibernate MySQL所需的路径

加入JPA Hibernate MySQL所需的路径,mysql,sql,database,hibernate,jpa,Mysql,Sql,Database,Hibernate,Jpa,我在我的应用程序中使用复合PK,有两个表和一个连接表 我为函数编写了以下查询: @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.do

我在我的应用程序中使用复合PK,有两个表和一个连接表

我为函数编写了以下查询:

   @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);
}

你的查询不正确

尝试:


谢谢!这项工作的,但现在我得到一个内部服务器错误可选的int参数'doctor_id'存在,但无法转换为null值,因为被声明为一个基本类型。考虑将其声明为相应基元类型的对象包装器。我正在使用Get方法通过“/api/hospitaldoctors/{hospital\u id}/{doctor\u id}”URL对此进行访问。如何将其声明为对象包装器?是的,在@PathVariable中(如果使用Spring),将其定义为整数。
    @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
}
select hd from HospitalDoctor hd where hd.hospital.id = ?1 and hd.doctor.id = ?2