Java 等效sql的Hibernate查询

Java 等效sql的Hibernate查询,java,hibernate,join,hql,Java,Hibernate,Join,Hql,有人能帮我为这个查询编写等价的hql吗 SELECT IFNULL(oea.`organization_name`,'') FROM `consultation_appointment` ca JOIN `organization_employee_association` oea ON ca.`consultation_id` = oea.id JOIN professional_profile pp ON oea.`employee_profile_id` = pp.profile_id

有人能帮我为这个查询编写等价的hql吗

SELECT IFNULL(oea.`organization_name`,'') FROM `consultation_appointment` ca 
JOIN `organization_employee_association` oea ON ca.`consultation_id` = oea.id
JOIN professional_profile pp ON oea.`employee_profile_id` = pp.profile_id
我可以像这样加入第一个

select ca.name from ConsultationAppointment ca join ca.consultation oea
因为ConsultationAppoint类具有organization\u employee\u关联变量,所以更容易加入,困难在于organization\u employee\u关联没有直接映射到organization\u employee\u关联类


甚至GORM条件查询也很有用。

HQL不允许连接两个未关联的实体,您应该使用笛卡尔积

String query = "SELECT ca.name FROM consultation_appointment ca JOIN organization_employee_association oea, professional_profile pp WHERE oea.employee_profile_id = pp.profile_id";
List<String> caNames = session.createQuery(query).list();

好吧,添加这个关联…@JB Nizet如果你不介意的话,你能让它更清晰吗?你知道你需要实体之间的关联,以便在这些实体之间创建连接。因此,添加必要的关联。如果不知道你们的实体和表格,我无法更准确地说。是的,因为设计问题而上升,但只有在我们不可能尝试的情况下。但是在hql中应该有一些方法我们必须挖掘,谢谢你的努力,但是有错误,我们也已经这样尝试过了,错误在于在查询中使用“on”子句
String query = "SELECT ca.name FROM consultation_appointment ca JOIN organization_employee_association oea ON ca.consultation_id = oea.id JOIN professional_profile pp ON oea.employee_profile_id = pp.profile_id";
List<String> caNames = session.createSQLQuery(query).list();