开发日志:HQL关联查询出现语句正确,但一直查询不出结果的问题
来源:互联网 发布:python如何扩充字典 编辑:程序博客网 时间:2024/05/02 04:47
项目开发,使用HQL查询数据库,数据是有的,语句也正确,但是却没有查出预期的数据
产生疑问的HQL语句
SELECT * FROM MMZW.READ_DOCUMENT readdocume0_, MMZW.OADOCUMENT oadocument1_ WHERE readdocume0_.DOCUMENT_ID=oadocument1_.ID AND readdocume0_.ADD_USER_ID='ID' AND ( readdocume0_.FLOW_ID = '%11%'-- 这个没有执行 OR oadocument1_.FLOWID LIKE '%11%' )
解决问题的经过
1 刚开始怀疑HQL语句使用OR的问题,查找了有关资料,没找出语法错误,后来使用下面的语句排除了OR使用错误的原因
使用oadocument1_.FLOWID LIKE '%11%'可以查出数据
SELECT * FROM MMZW.READ_DOCUMENT readdocume0_, MMZW.OADOCUMENT oadocument1_ WHERE readdocume0_.DOCUMENT_ID=oadocument1_.ID AND readdocume0_.ADD_USER_ID='ID' AND oadocument1_.FLOWID LIKE '%11%'
使用readdocume0_.FLOW_ID = '%11%'依然查询不出数据
SELECT * FROM MMZW.READ_DOCUMENT readdocume0_, MMZW.OADOCUMENT oadocument1_ WHERE readdocume0_.DOCUMENT_ID=oadocument1_.ID AND readdocume0_.ADD_USER_ID='ID' AND readdocume0_.FLOW_ID = '%11%' -- 这个没有执行
2OR问题排除后,那么有可能是数据不存在
直接查询数据库,发现在没有关联的情况下,数据出现
SELECT* FROM MMZW.READ_DOCUMENT readdocume0_ WHERE readdocume0_.ADD_USER_ID='ID' AND readdocume0_.FLOW_ID LIKE '%11%'
3使用关联的时候出问题,无关联的时候数据存在,那么有可能是两张表没有关联
查看了数据库结果,发现数据表关联没问题
4最后去查询了一下readdocume表的数据,发现问题根源
SELECT * FROM read_document WHERE document_id IS NULL
查询到大量document_id为null的数据,原来是因为readdocume0_.FLOW_ID LIKE '%11%'的数据的外键document_id都为null,导致了执行查询时 ,符合下面条件
WHERE readdocume0_.DOCUMENT_ID=oadocument1_.ID AND readdocume0_.ADD_USER_ID='ID'
的数据里,没有符合readdocume0_.FLOW_ID = '%11%'的数据【因为document_id为null了,所以符合readdocume0_.FLOW_ID = '%11%'的数据一开始就被排除开了】,于是就出现了数据存在,语句也正确,但是没有查出预期的结果的大头虾麻烦
- 开发日志:HQL关联查询出现语句正确,但一直查询不出结果的问题
- ibatis插入正确但查询不出数据的问题
- 在Hibernate执行一对多表查询的HQL语句,怎样循环打印出结果
- 解决hql语句查询条件为中文时结果集为空,为英文查询条件时不为空的问题
- hql的关联查询 join
- HQL查询返回的结果绑定到DataGrid的问题
- hibernate+mysql中文查询不出结果,其他查询正常,SQL语句也正常
- HQL和SQL查询的结果不一致问题!!!
- hibernate下hql与sql查询结果的问题
- 都是分词模式惹的祸——庖丁解牛分词查询不出结果问题
- HQL语句的属性查询
- hibernate的hql查询语句
- HQL语句的模糊查询
- HQL常用的查询语句
- 使用hql或条件查询解决一对多关联查询的N+1查询问题
- hibernate HQL左关联查询问题
- mybatis有符合条件的结果但是查询不出
- loopback find查询不出想要的结果
- document.documentElement和document.body的区别
- Windows 核心编程之6 线程内核对象
- 深入浅出SQL Server中的死锁
- 3.2.3 单链表的建立与释放
- C# Socket编程(4)初识Socket和数据流
- 开发日志:HQL关联查询出现语句正确,但一直查询不出结果的问题
- C#托管执行过程
- 你所不知道的const------C++
- servlet常见错误收藏
- HttpClient教程
- tar 的使用
- Activity---Activity之间数据交流(onActivityResult的用法)
- C#自动内存管理
- Ubuntu12.04安装交叉编译工具链arm-linux-gcc