Я использую составную 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);
}
и я получаю ошибку Путь, ожидаемый для файла! В MySQL все работает. Как работает Hibernate в этом случае? Как я должен написать этот запрос? Вот моя @Entity таблицы join:
@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