改了一条查询语句结果返回的查询结果是重复的

Troyturk 2015-09-11 12:41:52
改的内容:查询条件:private String isAudit;改成private Long[] isAudit;
也就是数组查询,查询条件由单选变成多选
改的数据库查询语句mybaitis:
<!-- 查询条件:是否通过审核 -->
<if test="queryAudit != null and queryAudit.length != 0">
AND A.ISAUDIT IN
<foreach collection="queryAudit" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
改的serviceImpl实现类:
if (!CheckUtils.isEmpty(form.getQueryAudit())) { //验证非空

Long[] queryAudits = form.getQueryAudit();

List<Long> queryAuditList = new ArrayList<Long>();

for (Long queryAudit : queryAudits) {

if (!CheckUtils.isEmpty(queryAudit)) {
queryAuditList.add(queryAudit);
}
}

form.setQueryAudit(queryAuditList.toArray(new Long[0]));
}

返回的页面:
太多就不贴了,反正就是查的每一件商品都要重复6条
...全文
144 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你的dao的代码呢? 还有你mybatis返回的类型是什么
Defonds 2015-09-11
  • 打赏
  • 举报
回复
你把程序执行的查询语句想办法找到,然后贴出来,就知道啥原因了
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
问题解决了~
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
引用 9 楼 shijing266 的回复:
[quote=引用 7 楼 Troyturk 的回复:] [quote=引用 5 楼 shijing266 的回复:] 你的查询条件不是isAudit 这个么,怎么变成了queryAudit
没有,查询条件是这样命名的,isAudit是返回的结果 另外还有一点百思不得其解的是: 如果在这个http://localhost:8080/goods/query.action?auth.userId=31里面加一个querySellerId或者是querySellerName就不会重复了,但是不加就重复了,这是为什么呢,有没有啥思路啊,问题大约是出在哪一块上了[/quote] 我去,你复制sql到数据库去查,看看结果是什么[/quote] 我觉得是mybatis语句有问题,我再仔细看看好了
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
我觉得应该是mybatis语句出了问题,
引用 9 楼 shijing266 的回复:
[quote=引用 7 楼 Troyturk 的回复:] [quote=引用 5 楼 shijing266 的回复:] 你的查询条件不是isAudit 这个么,怎么变成了queryAudit
没有,查询条件是这样命名的,isAudit是返回的结果 另外还有一点百思不得其解的是: 如果在这个http://localhost:8080/goods/query.action?auth.userId=31里面加一个querySellerId或者是querySellerName就不会重复了,但是不加就重复了,这是为什么呢,有没有啥思路啊,问题大约是出在哪一块上了[/quote] 我去,你复制sql到数据库去查,看看结果是什么[/quote] 没问题,结果是正常的,也没有重复
  • 打赏
  • 举报
回复
引用 7 楼 Troyturk 的回复:
[quote=引用 5 楼 shijing266 的回复:] 你的查询条件不是isAudit 这个么,怎么变成了queryAudit
没有,查询条件是这样命名的,isAudit是返回的结果 另外还有一点百思不得其解的是: 如果在这个http://localhost:8080/goods/query.action?auth.userId=31里面加一个querySellerId或者是querySellerName就不会重复了,但是不加就重复了,这是为什么呢,有没有啥思路啊,问题大约是出在哪一块上了[/quote] 我去,你复制sql到数据库去查,看看结果是什么
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
引用 6 楼 rui888 的回复:
sql  打印出来 调试。 
数据库没问题,打印出来参数也都取到了,就是不知道为什么少了一个参数条件就会重复
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
引用 5 楼 shijing266 的回复:
你的查询条件不是isAudit 这个么,怎么变成了queryAudit
没有,查询条件是这样命名的,isAudit是返回的结果 另外还有一点百思不得其解的是: 如果在这个http://localhost:8080/goods/query.action?auth.userId=31里面加一个querySellerId或者是querySellerName就不会重复了,但是不加就重复了,这是为什么呢,有没有啥思路啊,问题大约是出在哪一块上了
tony4geek 2015-09-11
  • 打赏
  • 举报
回复
sql  打印出来 调试。 
  • 打赏
  • 举报
回复
你的查询条件不是isAudit 这个么,怎么变成了queryAudit
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
你把程序执行的查询语句想办法找到,然后贴出来,就知道啥原因了
我改的那条查询语句就是这样的: if (!CheckUtils.isEmpty(form.getQueryAudit())) { //验证非空 Long[] queryAudits = form.getQueryAudit(); List<Long> queryAuditList = new ArrayList<Long>(); for (Long queryAudit : queryAudits) { if (!CheckUtils.isEmpty(queryAudit)) { queryAuditList.add(queryAudit); } } form.setQueryAudit(queryAuditList.toArray(new Long[0])); } 我也只改了3个地方,都贴在上面了,不知道为什么查出来的数据会是重复的来着┭┮﹏┭┮
Troyturk 2015-09-11
  • 打赏
  • 举报
回复
引用 2 楼 shijing266 的回复:
你的dao的代码呢? 还有你mybatis返回的类型是什么
dao层是用mybatis语句实现的 是这样的: <if test="queryAudit != null and queryAudit.length != 0"> AND A.ISAUDIT IN <foreach collection="queryAudit" item="item" open="(" separator="," close=")"> #{item} </foreach> </if> mybatis返回的是一个实体类型 里面的是private int audit; 这个int也是要改成Long[]的吗

81,094

社区成员

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

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