Hibernate hql - помогите запросить внешний ключ - PullRequest
3 голосов
/ 08 марта 2012

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

мой объект Назначения сопоставлен с моим объектом Patient (не знаю, имеет ли это значение для 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 Ответ

16 голосов
/ 08 марта 2012

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

createQuery("from Appointment as appt where appt.patient.patientId = 1").list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...