我试图在一个列上内部联接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的。
我想使用INNER JOIN执行HQL查询并检索ROLE对象/结果。
到目前为止,这是我的总部
session.createQuery(“ ROLE作为角色,INNER JOIN INVOLVEMENT作为参与角色,id。X =参与.roleid WHERE参与.id = X”)。list();
我看到HQL上没有ON。我如何明确告诉Hibernate仅在此列上加入。
我也尝试过一个
从ROLE中选择roleSpec作为角色,从INVOLVEMENT作为参与WHERE角色。ID=参与.role_id和参与.id = 27251352
但是我得到ROLE没有异常映射。
请检查您的角色确实是一个映射实体。另外,您不需要执行“ ON”-hibernate知道什么是连接列(我知道如何在JPA上定义它)-因此无需在语句中提供它。它应该是 -
session.createQuery("from Role as role INNER JOIN Involvement as involvement WHERE involvement.id = X").list();
我假设您有Role类映射到ROLE表,Involvement类映射到Involement表。 也许您错误地使用了表名,这就是为什么会出现“未映射”错误的原因。 上一次我写HQL(而不是JPA- QL)时,我使用以下链接作为参考,它提供了所需的所有信息。