jpa查询记录重复

今天遇到一个bug,使用jpa查询数据,发现大部分的数据总有两条数据的状态字段一致的,.然后可以了debugger之旅. 数据结构如下


{"content":[{"orderno":"20170227195026075","shopName":"新泰市市区魅族专卖店","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098201","rowind":"437452","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":8.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"},{"orderno":"20170227195026075","shopName":"新泰市市区魅族专卖店","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098201","rowind":"437452","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":8.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"},{"orderno":"20170227194909256","shopName":"新泰市市区魅族专卖店","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098201","rowind":"437000","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":6.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"},{"orderno":"20170227194909256","shopName":"新泰市市区魅族专卖店","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098201","rowind":"437000","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":6.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"},{"orderno":"20170228175156770","shopName":"新泰市翟镇联合通讯","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098204","rowind":"438960","namepath":"山东省泰安市新泰市","orderStatus":"业务签收","income":6.0,"phoneCount":"1","incometype":"出库收益","createTime":"2017-02-28","payStatus":"已付款","orderPayType":"(线上支付)"},{"orderno":"20170228211134400","shopName":"新泰市翟镇方孜通讯","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098223","rowind":"439407","namepath":"山东省泰安市新泰市","orderStatus":"订单取消","income":0.0,"phoneCount":"1","incometype":"无收益","createTime":"2017-02-28","payStatus":"未付款","orderPayType":""},{"orderno":"20170227111243885","shopName":"新泰市小协镇刘和手机广场","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098221","rowind":"439500","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":6.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"},{"orderno":"20170227111243885","shopName":"新泰市小协镇刘和手机广场","userId":"A37098205160","cmonth":"2017-02","truename":"艾常松","regionId":"37098221","rowind":"439500","namepath":"山东省泰安市新泰市","orderStatus":"客户签收","income":6.0,"phoneCount":"1","incometype":"实时收益","createTime":"2017-02-27","payStatus":"已付款","orderPayType":"(现金)"}],"totalElements":0,"totalPages":56,"last":true,"numberOfElements":15,"first":false,"sort":null,"size":20,"number":55}

这里显示的数据在表里都有两个.

查询条件

把查询的sql粘了出来,执行一遍,未发现问题.

枚举

因为是用枚举来表示状态,所以先想到了是不是枚举有问题,瞎折腾了一个小时,发现无任何改变.

换成String

枚举无用,换成String,折腾了半个小时,问题还是一样.挨个观察了20条数据,发现订单号相同的数据只有一个状态,莫非是把订单号相同状态的数据替换了.

更新主键字段

看了一下自己的实体类,果然是以订单号为主键.问题就在这了,然后改了下主键字段,再查询时,其状态就不重复了.

总结,犯了个错误,即主键无重复,因为orderNo有重复的,所以用它做主键查询才出现这个问题.

转载于:https://my.oschina.net/u/1590027/blog/864967

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值