【求助】Jpa querydsl and和or混合查询生成sql不对的问题

一介布衣萧萧 2018-01-24 11:22:33
使用jpa + querydsl进行复杂查询时,遇到一个问题:当and和or混合时候后,发现生成出来的sql并非预期的接口

代码片段如下:

Role.parentId.in(roleIds)
.or(
Role.id.eq(roleParentId).and(User.id.eq(userId))
)


预期生成的查询条件sql应该是:

role.parentId IN ('1','2') OR ( role.id=3 AND user.id='5' )


但实际生成的sql却是:

role.parentId IN ('1','2') OR role.id=3 AND user.id='5'


实际生成的sql比预期的少了一对括号,导致查询不出结果。
尝试了N种方法,都没能加上这一对括号。

不知道有哪位大大知道怎么处理这种情况
...全文
2704 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
有点不nice 2021-01-07
  • 打赏
  • 举报
回复
我遇到同样的问题,用nativeQuery = true可以解决
Glex 2018-12-19
  • 打赏
  • 举报
回复
引用 3 楼 dong_19890208 的回复:
[quote=引用 2 楼 brantyou 的回复:]
[quote=引用 1 楼 dong_19890208 的回复:]
sql 执行中and的优先级比or的高所以会先判断and条件后判断or条件,所以生成的sql跟你想的sql是等效的,查不出结果应该是其他原因导致的


and的优先级是比or的高,所以查询是要加上一对括号去约束。问题是代码是加了括号约束的,生成的sql因为少了这一层括号,导致意思不一样了。查不到想要的[/quote]
and的优先级高所以不用加括号去约束[/quote]
你的逻辑不对。。。。
他没有达到想要的查询效果,就是要加括号改变这个优先级。
dong_19890208 2018-01-25
  • 打赏
  • 举报
回复
引用 2 楼 brantyou 的回复:
[quote=引用 1 楼 dong_19890208 的回复:] sql 执行中and的优先级比or的高所以会先判断and条件后判断or条件,所以生成的sql跟你想的sql是等效的,查不出结果应该是其他原因导致的
and的优先级是比or的高,所以查询是要加上一对括号去约束。问题是代码是加了括号约束的,生成的sql因为少了这一层括号,导致意思不一样了。查不到想要的[/quote] and的优先级高所以不用加括号去约束
一介布衣萧萧 2018-01-25
  • 打赏
  • 举报
回复
引用 1 楼 dong_19890208 的回复:
sql 执行中and的优先级比or的高所以会先判断and条件后判断or条件,所以生成的sql跟你想的sql是等效的,查不出结果应该是其他原因导致的
and的优先级是比or的高,所以查询是要加上一对括号去约束。问题是代码是加了括号约束的,生成的sql因为少了这一层括号,导致意思不一样了。查不到想要的
dong_19890208 2018-01-25
  • 打赏
  • 举报
回复
sql 执行中and的优先级比or的高所以会先判断and条件后判断or条件,所以生成的sql跟你想的sql是等效的,查不出结果应该是其他原因导致的
内容概要:本文详细描述了机械零件Part4的设计与建模过程,重点围绕三维建模中的几何构造操作展开。首先基于原零件三视图确定关键尺寸,依次创建多个同心圆柱体结构,包括外层圆柱体(52、52、5)、中间圆柱体(25、25、7)以及中心孔结构(16、16、12)。随后对底部圆柱体进行临时加高处理,以便在顶面草绘中构建辅助图形:以计算得出的半径17.5画圆,并在其接触面上方绘制半径为3的小圆,进而引出两条分别成60°和-60°的斜线,配合一条水平线形成三角形轮廓。接着在其余两角复制相同的小圆结构,清理多余线条后完成草图设计。利用该草图执行“拉伸切除”操作,深度设为16.28mm,实现特征开槽。最后将底部圆柱体恢复原始高度5mm,完成整体结构修改。; 适合人群:具备基础CAD建模能力的机械设计人员或工科类学生;熟悉SolidWorks、AutoCAD等三维设计软件的操作者;从事零部件逆向设计或结构优化的技术人员。; 使用场景及目标:①用于学习复杂零件的分步建模方法,掌握从三视图到三维实体的转换技巧;②理解拉伸、切除、草图约束、包围盒设置等核心建模命令的实际应用;③提升对尺寸链计算、辅助线构建及几何关系控制的理解与实践能力。; 阅读建议:建议结合文中参数逐步在建模软件中复现操作,重点关注草图绘制逻辑与切除特征的关联性,注意各步骤间的顺序依赖关系,避免因尺寸或约束错误导致建模失败。

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧