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

QQ登录

只需一步,快速开始

查看: 1366|回复: 3

[处理中6] baasData的boolean类型映射值错误

[复制链接]

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-7-11 16:14:22 | 显示全部楼层 |阅读模式
数据库里类型为bit(1),自动映射为boolean类型,于是问题来了,前台回传的数据都是false,即使我传给后台的是数字1,也是解释为false。
在数据库里,数字0表示false,数字1表示true,这是bit(1)类型的唯一数值表示方式。
在程序里,除了0、1两种值表示boolean类型外,还可以用true、false来表示,或者字符串来表示。
在C语言里、所有非空字符串、非0数字都是true
显然false的判断比较苛刻,大多数的值都可视为true,但是到了你们的框架里,却反过来了,大多数值都是false,我都做不出一个为true的值来了,更别说要和数据库的值来匹配。

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
 楼主| 发表于 2016-7-11 16:42:42 | 显示全部楼层
找了下你们的处理代码,太厉害了,居然这样来判断boolean类型的值,这样不出问题就有鬼了:
  1. case BOOLEAN:
  2. return new Boolean(jsValue.toString());
复制代码


另外前台js部分也是有问题的,只要数据类型为boolean,ref关联后的值就没法正确操作了。
回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
 楼主| 发表于 2016-7-13 17:32:02 | 显示全部楼层
这里微调下,改为如下判断就好很多
  1.                 case BOOLEAN:
  2.                         String tmpval = jsValue.toString().toLowerCase();
  3.                         if(tmpval.length() == 0 || tmpval.equals("0") || tmpval.equals("false"))
  4.                                 return false;
  5.                         else
  6.                                 return true;
复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2016-7-14 10:35:00 | 显示全部楼层
测试数据库类型可能覆盖不完整,后续会验证修改,感谢楼主的支持与配合。
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:16 , Processed in 0.051903 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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