当前位置: 首页 > 面试题库 >

带有左联接获取的JPA namedquery

顾文昌
2023-03-14
问题内容

这是我的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 = false)“ +” LEFT JOIN FETCH
u.bCredentials“ +” LEFT JOIN FETCH u.cl“ +” WHERE u.id =:id ”)

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

org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:LEFT…。

在侧面有一个注释

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

知道如何处理where子句吗?


问题答案:

检查SQL语法,您不能使用left joinafter
where子句。如果查看的是由SQL生成的名为query的表单,您将看到查询中的联接表where子句在联接之后出现,并应指定相等条件,通过键将这些表链接起来。主表的主键在左侧,而联接表的外键在右侧。联接表由多对一关联的属性指定。

@NamedQuery(
    name = "findOneWithLists",
    query = "from Table t left join User u where u.id= :id"
)


 类似资料:
  • 我正在与一个带有日期范围的雪花数据库左联接查询作斗争。请在下面找到样表内容 我的雪花SQL查询:选择o.ORDER_DATE,大小写当ORDER_DATE为NULL时,则“no”否则“yes”结束为ORDER_PLACED,C.customer_id,C.name FROM CUSTOMER C左联接C.customer_id=o.customer_id和o.ORDER_DATE>=DATEADD

  • 有没有一种方法,我可以创建PHP和MySQLi CRUD与左联接表。目前,我有4个表-费用,付款,班级和学生。用户应该能够创建、编辑和删除付款表中的数据。但是,付款的行是有限的-(payments_id,student_id,payment_date,payment_amount和fee_id)。因此,我希望用户能够选择user firstname而不是student_id。

  • 我将两个表上的连接定义为左外部连接,以便所有记录都从左表返回,即使它们在右表中没有记录。不过,我还需要包含一个where子句,但是...即使不满足where子句中的条件,我仍然希望为左侧表中的每个记录返回左侧表中的一行。有办法做到这一点吗? 我正在编写带有联接条件的查询,如下所示 以上条件不返回任何行。其中如下条件返回... 输出应为

  • 这是我的命名查询: @NamedQuery(name=“User.findOneWithLists”,query=“从用户u中选择u”“左连接获取u.aTemplates”“左连接获取u.bTemplates”“左连接获取u.bp”“左连接获取u.aCredentials”“左连接获取u.st WHERE(st.deleted=false)”“左连接获取u.bCredentials”“左连接获取u

  • 问题内容: 我正在尝试创建一个更新查询,并且在获取正确的语法方面进展甚微。以下查询正在运行: 它创建一个三元组的列表Index1,Index2,EventCounts。仅在t.SpecialEventCount为NULL的情况下才这样做。我尝试编写的更新查询应将此SpecialEventCount设置为该计数,即上述查询中的COUNT(m.EventType)。此数字可以是0或任何正数(因此为左联

  • 问题内容: 我正在尝试从tblimage中提取与每个用户的tblimage中的maxid对应的照片。目前,我正在从消息表中获取所有消息,并为发布消息的用户提供了一张随机照片,我希望该照片是最新上传的照片。按照现在的书写方式,它只是从桌子上拉出一张随机照片。有什么建议? 表结构是这样的: 消息:msgid,消息,user_id,event_id tblimage:id,照片,userid 问题答案: