HQL查询在where子句中使用or关键字

大叔未成年 2012-11-01 05:53:31
比如这样一条HQL:"from User u where (u.name=? and u.pass=?) or (u.name1=? and u.pass1=?)";
为什么hibernate翻译的SQL为这样:"select * from User u where u.name=? and u.pass=? or u.name1=? and u.pass1=?";

求大神帮忙啊!!
...全文
581 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
大叔未成年 2012-11-02
  • 打赏
  • 举报
回复
结贴啦!
说明:是自己糊涂了,查询结果时我看Hibernate翻译的SQL语句发现or关键字的翻译问题,以为是这个问题导致了查询结果的不正确.........!
结果不是这个原因,这样的翻译是正确的,因为and的优先级高于or!所以.....二了!

希望其他朋友不要遇到我这样的问题。
大叔未成年 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
不会呀,我刚试过了,还是会编译成原来的结构
[/Quote]
不会啊,我测试出来就是这样的啊!or关键字前后都不会有括号...
diypyh 2012-11-01
  • 打赏
  • 举报
回复
不会呀,我刚试过了,还是会编译成原来的结构

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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