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

带左连接提取的Jpa namedquery

昝唯
2023-03-14

这是我的命名查询:

@NamedQuery(name=“User.findOneWithLists”,query=“从用户u中选择u”“左连接获取u.aTemplates”“左连接获取u.bTemplates”“左连接获取u.bp”“左连接获取u.aCredentials”“左连接获取u.st WHERE(st.deleted=false)”“左连接获取u.bCredentials”“左连接获取u.cl”“其中u.id=:id”)

我的问题是,应用程序启动时出现错误:

org.hibernate.hql.internal.ast.查询异常:意外令牌:左......

在圣方有一个注释

@ManyToOne
 @JoinColumn(name = "st_user")
 private User user;

你知道我该怎么处理这个where条款吗?

共有2个答案

邓宜年
2023-03-14

对于连接条件,Hibernate甚至在JPA2.1之前就提供了带有关键字的

因此,查询的相关部分如下所示:

SELECT u FROM User u  ... LEFT JOIN u.st WITH st.deleted = false

我不确定是否使用u.id=:id左连接FETCH u.cl,但如果我没记错的话,那就不那么容易了,可能需要在where条件下使用一个经过调整的连接和u.ui=:id来解决。

左连接获取u.st和st.deleted=false`

不支持此操作,因为无法执行部分读取。

蒋嘉实
2023-03-14

检查SQL语法,您不能在where子句之后使用左连接。如果您正在查看SQL生成的名为查询的表单,您将看到查询中的已连接表其中子句位于连接之后,并且应该指定通过键链接这些表的相等条件。左侧主表的主键和右侧连接表的外键。联接表由多对一关联的属性指定。

@NamedQuery(
    name = "findOneWithLists",
    query = "from Table t left join User u where u.id= :id"
)
 类似资料:
  • 我在使用LEFT JOIN FETCH时遇到了一个问题。请参考我下面的实体和存储库。 考虑一个场景,可选的课程不会在任何时间点从表中删除。但是学生信息可以被删除。数据库中的两个表之间没有主键和外键关系。只是我们有一个共同的栏目“学生ID”。 不带事务的服务方法: 具有事务性的服务方法: 尽管我使用了LEFT JOIN FETCH,但当我调用依赖实体(即oc)时,为什么在学生记录不存在的情况下(即学

  • 问题内容: 我正在使用Django的内置用户模型,并且具有一个自定义Foo对象,并带有一个用户外键。我正在寻找选择所有User对象和所有符合某些约束的Foo对象,例如: 我应该如何在Django中完成这项工作?到目前为止,我已经尝试过: 但这会生成类似于以下内容的SQL: 并且仅返回具有符合条件的Foo对象的User对象。或者,我可以选择所有User对象并为每个对象运行一个查询,但是效率会大大降低

  • 问题内容: 这是我的namedquery: @NamedQuery(name =“ User.findOneWithLists”,查询=“从用户u中选择u” +“左联接FEACH u.aTemplates” +“左联接FE.bTemplates” +“左联接FE.bp” +“左JOIN FETCH u.aCredentials“ +” LEFT JOIN FETCH u.st(st.deleted

  • 当我添加一个左连接来获取外部表的计数时,它将我其他左连接表的总和值与计数相乘,我也不能在这里使用不同的总和,因为两个值可以是相同的:

  • 主要内容:Oracle LEFT JOIN子句简介,Oracle LEFT JOIN示例在本教程中,您将学习如何使用Oracle 子句来查询多个表中的数据。 Oracle LEFT JOIN子句简介 以下语句说明连接两个表和时的子句的语法: 在这个查询中,是左表,是右表。查询将表中的每一行与表中的行进行比较。如果和表中的一对行满足连接谓词,查询将组合两个表中行的列值,并将结果行记录包含在结果集中。 如果表中的行在表中没有找到匹配的行,则查询将会将SELECT子句中出现在表的每个列的值

  • LEFT OUTER JOIN 左外连接 [ ] 需求:查询所有分类,如果该分类下没有商品,则不显示该分类 [ ] 实现: SELECT `goods`.`id`, `goods`.`title`, `goods`.`price`, `goods`.`cate_id`, `cate`.`id`, `cate`, `cate.title` F