[英]Inner join using HQL
我试图在一列上连接两个表。 从DB方面来说,没有映射,因为它是我不想讨论的东西。
我想使用INNER JOIN执行HQL查询并检索ROLE对象/结果。
到目前为止这是我的hql
session.createQuery(“来自ROLE作为角色INNER JOIN INVOLVEMENT作为参与ON role.id = involvement.roleid WHERE involvement.id = X”)。list();
我在HQL上看不到ON。 我如何明确地告诉Hibernate只在这个列上加入。
我也在下面尝试过
从ROLE选择roleSpec作为角色,INVOLVEMENT作为参与WHERE role.ID = involvement.role_id和involvement.id = 27251352
但我在异常中没有映射到ROLE。
请检查您的ROLE确实是映射实体。 另外,你不需要执行“ON” - hibernate知道什么是连接列(我知道如何在JPA中定义它) - 所以不需要在语句中提供它。 它应该是 -
session.createQuery("from Role as role INNER JOIN Involvement as involvement WHERE involvement.id = X").list();
我假设您将Role类映射到ROLE表,并将Involvement类映射到Involement表。
也许你错误地使用了表名,这就是你得到“not mapped”错误的原因。
上次我编写HQL(而不是JPA-QL)时,我使用以下链接作为参考,它提供了所需的所有信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.