Hibernate hql - 帮助查询外键

sle*_*lex 4 hibernate hql

我正在尝试从表约会中查询外键患者ID.

我的约会对象被映射到我的Patient对象(不知道对于hql是否重要),如下所示:

    <many-to-one name="patient" class="application.model.Patient" fetch="select">
        <column name="patientId" not-null="true" />
    </many-to-one>
Run Code Online (Sandbox Code Playgroud)

我的查询是:

    createQuery("from Appointment as appt where appt.patientId = 1").list();
Run Code Online (Sandbox Code Playgroud)

我试过做像这样的连接:

    createQuery("from Appointment as appt join appt.patientId ptid where ptid.patientId = 1").list();
Run Code Online (Sandbox Code Playgroud)

我必须遗漏一些基本的东西,因为"appt.appointmentId = 1"的工作正常.任何建议将不胜感激.

Fir*_*iro 16

HQL是一种对象查询语言,因为你有一个引用,你需要先访问引用来获取id.假设患者阶层有一个属性patientid

createQuery("from Appointment as appt where appt.patient.patientId = 1").list();
Run Code Online (Sandbox Code Playgroud)