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