当前位置: 首页 > 知识库问答 >
问题:

使用HQL的内部联接

丌官浩旷
2023-03-14

我试图在一列内连接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的事情。

我想使用内部联接执行HQL查询并检索角色对象/结果。

这是到目前为止我的hql

一场createQuery(“从角色作为角色内部加入参与作为角色上的参与。id=invention.roleid,其中invention.id=X”)。list();

我看到在HQL上不可用。如何明确地告诉Hibernate仅加入此列。

我也试过低于一个

从角色中选择角色规格作为角色,将参与作为参与位置角色。ID=involvement.role_idinvolvement.id=27251352

但我得到的角色没有映射在例外。

共有1个答案

宦宏爽
2023-03-14

请检查您的角色是否确实是一个映射实体。此外,您不需要执行“开”——Hibernate知道什么是连接列(我知道如何在JPA中定义它)——所以不需要在语句中提供它。应该是-

session.createQuery("from Role as role INNER JOIN Involvement as involvement WHERE involvement.id = X").list();

我假设你已经将角色类映射到角色表,而参与类映射到参与表。
也许你错误地使用了表名称,这就是为什么你会得到“未映射”错误。
上次我写HQL(而不是JPA-QL))我用下面的链接作为参考,它提供了所有需要的信息。

 类似资料:
  • 问题内容: 我试图在一个列上内部联接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的。 我想使用INNER JOIN执行HQL查询并检索ROLE对象/结果。 到目前为止,这是我的总部 session.createQuery(“ ROLE作为角色,INNER JOIN INVOLVEMENT作为参与角色,id。X =参与.roleid WHERE参与.id = X”)。list(); 我看到

  • 如何在Hibernate中编写此SQL查询?我想使用Hibernate创建查询,而不是创建数据库。 我在SQLServer2008中创建了实体类, 我尝试用多种方法构建工作选择查询,但仍然不起作用。 也许实体有问题?

  • 问题内容: 如何在Hibernate中编写此SQL查询?我想使用Hibernate创建查询,而不是创建数据库。 我在SQLServer2008中创建了实体类, 我试图以多种方式构建有效的选择查询,但仍然无法正常工作。 实体有问题吗? 问题答案: 连接只能在实体之间存在关联时使用。您的Employee实体不应将名称为,类型为的字段映射到列。它应该与Team实体具有ManyToOne关联,并映射为Jo

  • 问题内容: 我想在我的域/实体对象中执行以下操作: 这样我就可以在服务层中执行以下操作: 但是,我在HQL中的语法不正确-大约十分钟后,我决定放弃正式文档并在此处询问…?我的usercat表是这样加入的: 的SQL是这样,它在我的数据库命令提示符下工作正常: 仅仅是我还是休眠文档比较痛苦,您是否发现自己经常想知道,编写普通的jdbc准备好的语句来填充pojos / domain objects /

  • 所以我有一个相关的子查询,我读到这不是最有效的方法。因此,我想将此查询转换为内部联接查询。 我试过这样的方法: 在对数据库“db”执行SQL查询时导致 我在这里的所有搜索结果都产生了大致相同的查询(与我尝试的类似)

  • 问题内容: 我有2个实体:汽车和车轮(oneToMany),我想检索我的汽车,其中有所有车轮,并且(这是棘手的部分)由wheels.location排序。下面的代码引发异常,并显示消息“非法尝试取消引用集合”。 任何想法如何做到这一点,如果这可以在HQL中进行? 问题答案: