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

Hibernate-join需要的路径

唐阳泽
2023-03-14

我有一个hibernate查询,如下所示

SELECT t FROM User t JOIN UserRole u ON t.username = u.username WHERE t.username=:username AND t.password =:pass AND u.userRole =:ust

但是这个查询不起作用

错误:连接需要路径!错误:连接需要路径!加入所需的路径!在org.hibernate.hql.internal.ast.hqlsqlwalker.createFromJoinElement(HQLSQLWalker.java:385)在org.hibernate.hql.internal.antlr.hqlsqlBaseWalker.joinElement(HQLSQLBaseWalker.java:3903)在org.hibernate.hql.internal.antlr.hqlsqlBaseWalker.java:3903)在在org.hibernate.hql.internal.antl.hqlsqlbasewalker.fromclaus(Hqlsqlbasewalker.java:708)在org.hibernate.hql.internal.antlr.hqlsqlbasewalker.query(Hqlsqlbasewalker.java:564)在org.hibernate.hql.internal.antlr.hqlsqlbasewalker.selectstatement(Hqlsqlbasewalker.java:564)在latorimpl.java:278)在org.hibernate.hql.internal.ast.queryTranslatorimpl.doCompile(queryTranslatorimpl.java:206),在org.hibernate.hql.internal.ast.queryTranslatorimpl.Compile(QueryTranslato)RIMPL.java:158)在org.hibernate.engine.query.spi.hqlQueryPlan.(HQLQueryPlan.java:131)在org.hibernate.engine.query.spi.hqlQueryPlan.(HQLQueryPlan.java:93)在org.hibernate.engine.query.spi.hqlQueryPlan.(hqlQueryPlan.java:93)在onimpl.java:236)在org.hibernate.internal.sessionimpl.createquery(sessionimpl.java:1836)在com.nepitc.mshandloomfrabics.daoimp.userdaoimp.login(userdaoimp.java:40)在com.nepitc.mshandloomfrabics.service.userservice.login(userservice.java:74)在com.nepitc.mshandloomfrabics.controller.authorizationcontroller.login(

我怎样才能写得正确

共有1个答案

松高歌
2023-03-14

在JPQL/HQL中,您不需要为联接指定ON子句,因为Hibernate已经知道生成联接所需的两个实体和列之间的映射。

因此,您实际上只需要提供谓词和请求来执行联接,如下所示

SELECT u FROM User u 
  JOIN u.roles ur
 WHERE u.username = :username
   AND u.password = :password
   AND ur.userRole = :role
 类似资料:
  • 问题内容: 我在github上遇到了这个文件,它是这样做的: 那是什么意思?当我尝试相同时,我得到: 问题答案: 它需要父文件夹的文件,这是一个:https : //github.com/visionmedia/node- migrate/blob/master/index.js

  • 我问的问题非常简单,但似乎不可能找到答案。我正在使用Spring Data JPA,我有一个JDBC/JPA(这是PostgreSQL,但这不重要),它预加载了数据,我只是试图从中读取。 我如何构造我的POJO,这样我就可以有一个< code >列表 这样做,我得到了一个 在另一个表中?我如何修复这种行为?我只是尝试将PostgreSQL 列映射回< code >列表

  • 问题内容: 我正在使用Hibernate Search,文档和书籍说我在id字段上需要@DocumentId,以便Hibernate Search可以知道如何将索引映射到对象。 没有代码中的@DocumentId,我的代码似乎运行良好。Hibernate Search是否变得足够聪明,以至于@Id字段是一个很好的默认值?是否会引起一些不明显的问题? 谢谢你的时间! 问题答案: 如果您使用的是老式的

  • 我有一个目录如下所示: 我希望我的文件需要。现在我正在使用,但这不起作用。我做错了什么?我希望避免使用。

  • 问题内容: 您如何在一个日期稀疏的表与另一个日期详尽的表之间进行联接,以使稀疏日期之间的间隔取前一个稀疏日期的值? 说明性示例: 所需结果: 更新: 几个人提出了可以完成所需结果的相关子查询。(相关子查询=包含对外部查询的引用的子查询。) 这将起作用;但是,我应该注意到,我使用的平台是MySQL,其相关子查询的优化效果很差。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 问题内容: 我有本机查询要运行: 出于某种原因,Hibernate选择在执行选择之前进行更新,这确实干扰了我的数据 任何帮助将不胜感激,谢谢 问题答案: 您所描述的正是Hibernate的含义。 执行查询时对持久性上下文(1LC)的任何修改都将在执行查询之前自动清除,以确保数据库返回的结果与内存中修改所缓存的结果匹配。 如果查询将返回您要查看其更新的实体,则您可能应该重新评估您的操作,确保查询在更