起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 439|回复: 5

[处理中3] 外卖案例提交订单第二次下单就报主键冲突

[复制链接]

28

主题

112

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
发表于 2016-4-22 15:27:39 | 显示全部楼层 |阅读模式
orderData的jason数据打印如下:

jasondata:{"@type":"table","rows":[{"fAddress":{"changed":0,"value":"北京朝阳区东三环南路98号高和蓝峰大厦18层1802室"},"fContent":{"changed":0,"value":"老北京炸酱面(1) "},"fCreateTime":{"changed":0,"value":"2016-04-22T14:53:36.308Z"},"fPhoneNumber":{"changed":0,"value":"400-017-8677"},"fSum":{"changed":0,"value":20},"fUserID":{"changed":0,"value":"user"},"fUserName":{"changed":0,"value":"马先生"},"userdata":{"id":{"changed":0,"value":"C70A56C6AB40000183702BED14001084"},"isModified":true,"recordState":"new"}}],"userdata":{"idColumnDefine":"fID","idColumnName":"fID","idColumnType":"String","model":"","relationAlias":"fAddress,fContent,fCreateTime,fPhoneNumber,fSum,fUserID,fUserName","relationTypes":"String,String,DateTime,String,Float,String,String","relations":"fAddress,fContent,fCreateTime,fPhoneNumber,fSum,fUserID,fUserName","updateMode":"whereVersion"}}
jasondata:{"@type":"table","rows":[{"fAddress":{"changed":0,"value":"北京朝阳区东三环南路98号高和蓝峰大厦18层1802室"},"fContent":{"changed":0,"value":"老北京炸酱面(1) "},"fCreateTime":{"changed":0,"value":"2016-04-22T14:53:40.750Z"},"fPhoneNumber":{"changed":0,"value":"400-017-8677"},"fSum":{"changed":0,"value":20},"fUserID":{"changed":0,"value":"user"},"fUserName":{"changed":0,"value":"马先生"},"userdata":{"id":{"changed":0,"value":"C70A56C7C0E000012D8D1E3DF5005C10"},"isModified":true,"recordState":"new"}},{"fAddress":{"changed":0,"value":"北京朝阳区东三环南路98号高和蓝峰大厦18层1802室"},"fContent":{"changed":0,"value":"老北京炸酱面(1) "},"fCreateTime":{"changed":0,"value":"2016-04-22T14:53:36.308Z"},"fPhoneNumber":{"changed":0,"value":"400-017-8677"},"fSum":{"changed":0,"value":20},"fUserID":{"changed":0,"value":"user"},"fUserName":{"changed":0,"value":"马先生"},"userdata":{"id":{"changed":0,"value":"C70A56C6AB40000183702BED14001084"},"isModified":true,"recordState":"new"}}],"userdata":{"idColumnDefine":"fID","idColumnName":"fID","idColumnType":"String","model":"","relationAlias":"fAddress,fContent,fCreateTime,fPhoneNumber,fSum,fUserID,fUserName","relationTypes":"String,String,DateTime,String,Float,String,String","relations":"fAddress,fContent,fCreateTime,fPhoneNumber,fSum,fUserID,fUserName","updateMode":"whereVersion"}}
java.sql.SQLException: Duplicate entry 'C70A56C6AB40000183702BED14001084' for key 1
发表于 2016-4-22 16:17:50 | 显示全部楼层
请问你是怎么保存的??不是调用的baasData组件的saveData() 方法吗??
如果是自己使用ajax调用的保存action
那么data组件中数据行的状态时没改变的!下次保存这些行数据会重复保存的!所以
如果完全自己实现!需要循环修改行的状态!

参考:
http://bbs.wex5.com/forum.php?mo ... 0&pid=165219886

还有关于data组件的API文档!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

28

主题

112

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2016-4-22 16:19:45 | 显示全部楼层
liangyongfei 发表于 2016-4-22 16:17
请问你是怎么保存的??不是调用的baasData组件的saveData() 方法吗??
如果是自己使用ajax调用的保存acti ...

我直接调用takeout的action  save的方法啊
回复 支持 反对

使用道具 举报

发表于 2016-4-22 17:15:42 | 显示全部楼层
15222581829 发表于 2016-4-22 16:19
我直接调用takeout的action  save的方法啊

你应该调用的是data组件的saveData() 方法!这个方法才会出来data组件中行的状态!
而你自己调用action ,行状态肯定不会自动修改的!你也可以使用代码实现,保存成功后,把行状态都变成none
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

28

主题

112

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
QQ
 楼主| 发表于 2016-4-25 09:46:19 | 显示全部楼层
liangyongfei 发表于 2016-4-22 17:15
你应该调用的是data组件的saveData() 方法!这个方法才会出来data组件中行的状态!
而你自己调用acti ...

那视频里的takeout  的demo是有问题的吗?我是参照那个视频做的开发。那里就是调用了save方法啊
回复 支持 反对

使用道具 举报

发表于 2016-4-25 17:35:15 | 显示全部楼层
15222581829 发表于 2016-4-25 09:46
那视频里的takeout  的demo是有问题的吗?我是参照那个视频做的开发。那里就是调用了save方法啊 ...

如果是调用 data.saveData() 方法保存的数据!底层是已经实现了修改行状态的!
就看你是不是这样调用的了!
直接写takeout的action  save 也可以,但是要写在data的onCustomSave 事件中!
然后你直接调用 data.saveData()  就OK
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 05:16 , Processed in 0.084342 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表