Hibernate hql-справка запрос внешнего ключа


Я пытаюсь запросить внешний ключ patientId из таблицы встреч.

Мой объект назначения сопоставляется с объектом моего пациента (не знаю, имеет ли это значение для hql) следующим образом:

    <many-to-one name="patient" class="application.model.Patient" fetch="select">
        <column name="patientId" not-null="true" />
    </many-to-one>

И мой запрос:

    createQuery("from Appointment as appt where appt.patientId = 1").list();

Я пытался сделать соединения, такие как:

    createQuery("from Appointment as appt join appt.patientId ptid where ptid.patientId = 1").list();

Я, должно быть, упускаю что-то фундаментальное, потому что "appt.appointmentId = 1 " работает просто отлично. Любые предложения будут оценены.

1 3

1 ответ:

HQL-это язык объектных запросов, и поскольку у вас есть ссылка, вам нужно сначала получить доступ к ссылке, чтобы получить идентификатор. Предполагая, что класс patient имеет свойство patientid

createQuery("from Appointment as appt where appt.patient.patientId = 1").list();