GAE 500字符问题解决与论思考方法

继续前面一篇Blog的问题,那张JavaEye上的帖已经很值得看一下了,上面的讨论能引发很多思考(http://www.javaeye.com/topic/421104)。

 

GAE上面的String类型,只能支持500字符,所以需要使用它提供的com.google.appengine.api.datastore.Text作为数据类型。一位坛友认为是Play!框架的原因,不能处理该类型,我则觉得这不大可能:

 

哦?没有注意这个问题,呵呵~我也是刚接触这两个东西,那个Test应该是GAE提供的包吧?play可以引入别的数据类型的,理论上,如果View层没法迭代出来,最多在

postVo.setContent(postItem.content.toString());//假设有类似的方法

的时候转一下就好了,这些都不是问题,任何一个框架理论上都不会遇到适别数据类型的问题的,也就是说Play!不会说不能使用Test类型的,他大不了当是自定义的一个类处理。

 

分歧就这样出现了,吃了个饭回到电脑前,看了下他回了个帖,问题还没解决,于是我就循着我的想法去找问题,大概用了一个小时,解决方法找到了:

 

呵呵~恕我直说吧,你这个解决方法,其实不如使用传统的DTO模式,很明显GAE的存储层没法“到处调用”,那就应该把它隔离出来,原来J2EE的分层就是这个原因~

另外500字符问题已经解决(有点累,找了不少资料),Text不是Play!不能识别,原因如我前面所说~~
可以把GAE的appengine-api-1.0-sdk-1.2.1.jar拷过来,里面有com.google.appengine.api.datastore.Text这个类,在Post里面把content的类型设为他就好。。。

你会发现GAE这个字段没被存起来,这时候要坚定信念,因为前面已经分析过原因。去找GAE的问题,Google不到,只有JDO的,那就去Google Group去找,里面全是GAE的高手,包括开发者,搜一下就会发现有人遇到你的问题了。。。

在这个字段前面加上@Enumerated就可以解决。。。

后面的事情如同我前面说的,大不了复制为VO的时候转一下就好(这时候,你的解决方法就不行了,分层还是有好处的:)):

 

postVo.setContent(postItem.content.getValue());  
这样就解决了,记得把View里面所有的调用改为调用postVo的,否则可能出现转型问题,检查清楚~~~

一切成功~

结论:方法和思路才是最重要的~~
 
在这里把我的两个回帖子帖出来,并不存在炫耀的什么意思, 这个破Blog基本没啥人气,也就我自己记录,给自己提个醒的作用而已。
很多人都在想做代码,什么让才叫做得不错,把SSH弄得熟透?对操作系统,数据库摸得一清二楚?当然,做那样的专家的确很好,也很值钱,但大部份人没有那么幸运,可以一直潜心去做某一样事业。大部份人的水平其实都差不多的,前几天看到一个观点,说能够通过搜索引擎看书得到的知识,基本上是个智商正常的人都会的。的确,人的水平和任何统计一样,也是呈正态分布的(:)所以我的薪水也是~),在这一点点差距里面,更多的差别是思考方法的区别,而形成思考的方法,很多是其他知识的积累,所以那些拿几十万欧的架构师,和我们的差距,大多是对问题的解读区别~
大家共勉吧~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值