Jfinal中的Record对象如何转换成POJO对象?

osc_1186658 发布于 2016/06/13 16:58
阅读 5K+
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

@JFinal 你好,想跟你请教个问题:

波总,又来麻烦你了,现在我们的接口全部是用record返回的,Record返回单个对象或者集合类对象,对于接口而言,Record类型,无法在非运行状态准确知道接口返回了何种数据,也就是说,对于任何一个接口,使用Record返回,接口无法对返回数据进行自我描述,需要单独维护一份文档描述接口返回数据,不利于跨模块和前后端的人协作(我们的团队比较大,8个业务块,30号人的团队),利用维护api文档来在团队中同步api接口的定义,不现实。

使用Record返回,有弹性但是又达不到我们的期望(开发人员看到接口就知道返回类型,看到返回类型就知道返回了那些数据),给协作带来非常大的不便。

我自己希望在拿到Record数据对象后,能转换成pojo,来解决Record因弹性给团队协作带来的不便。

请问波总,如何把Record转换成pojo对像,多谢波总:)




加载中
0
JFinal
JFinal

   用 jfinal 2.2 的 model 即可极速打完收工,jfinal 2.2 的 Model 集 Record 与传统 java bean 于一身,而且 getter setter 方法还是自动化生成的。

   在集群环境下,如果有些节点,没有数据库连接,只需要使用一行代码即可用上 Model :

ActiveRecordPlugin.useAsDataTransfer();
   在 jfinal 2.2 之下,相当于你的 Model 可以用于非数据库环境,极度方便,具体用法参见jfinal 手册,在此下载: http://www.jfinal.com
0
b
beastxiao
你只能修改接口返回类型了,因为record不一定对应一张表,如果是连接查询,一个record可以对应几个实体类,没法做通用的转换了。
0
osc_1186658
osc_1186658

引用来自“JFinal”的评论

   用 jfinal 2.2 的 model 即可极速打完收工,jfinal 2.2 的 Model 集 Record 与传统 java bean 于一身,而且 getter setter 方法还是自动化生成的。

   在集群环境下,如果有些节点,没有数据库连接,只需要使用一行代码即可用上 Model :

ActiveRecordPlugin.useAsDataTransfer();
   在 jfinal 2.2 之下,相当于你的 Model 可以用于非数据库环境,极度方便,具体用法参见jfinal 手册,在此下载: http://www.jfinal.com

感谢波总回答,我刚看了下Jfinal2.2的示例,文档也看了。有一些疑问

第一,目前我们用的版本是2.0,要用bean的特性,貌似差异很大

第二,record不一定对应一张表,如果是连接查询,一个record可以对应几个实体类,没法做通用转换

还是回到问题上来,record类型,这个record可能是单表中的某几个属性,也可能是多表中的属性组合,怎么把record变成pojo的强对象呢?

JFinal
JFinal
第一,建议升级到 2.2,分分钟的事。第二,要转换也不难,通过反射bean中的setter方法,得到参数名称与参数类型,注入进去,用不了几行代码,可参考一下jfinal 2.2 的 ModelInjector 源代码
0
osc_1186658
osc_1186658

引用来自“JFinal”的评论

   用 jfinal 2.2 的 model 即可极速打完收工,jfinal 2.2 的 Model 集 Record 与传统 java bean 于一身,而且 getter setter 方法还是自动化生成的。

   在集群环境下,如果有些节点,没有数据库连接,只需要使用一行代码即可用上 Model :

ActiveRecordPlugin.useAsDataTransfer();
   在 jfinal 2.2 之下,相当于你的 Model 可以用于非数据库环境,极度方便,具体用法参见jfinal 手册,在此下载: http://www.jfinal.com

引用来自“天生蛋疼菊紧”的评论

感谢波总回答,我刚看了下Jfinal2.2的示例,文档也看了。有一些疑问

第一,目前我们用的版本是2.0,要用bean的特性,貌似差异很大

第二,record不一定对应一张表,如果是连接查询,一个record可以对应几个实体类,没法做通用转换

还是回到问题上来,record类型,这个record可能是单表中的某几个属性,也可能是多表中的属性组合,怎么把record变成pojo的强对象呢?

谢谢波总回答,因为有一部服务在线上跑,基础框架升级这种事情,也不知道会有什么影响,想用新特性是是肯定的,但是我也得考虑替换风险。

Record转换的事情,我先试试,有问题找你反馈,再次感谢:)

0
dy810810
dy810810

波总,我想问下jfinal当初开发的想法是不是像php一样做数据库的搬运工?没有考虑业务逻辑复杂的场景。

pojo化没有,我可以忍,但没有设计service层,真心接受不了。

不是所有的场景都是数据库来数据库去的。

JFinal
JFinal
jfinal 项目是必须绝对要有业务层的,不要被很多jfinal项目所误导,可以关注一下社区将要分享的相关项目
0
CapJes
CapJes

引用来自“dy810810”的评论

波总,我想问下jfinal当初开发的想法是不是像php一样做数据库的搬运工?没有考虑业务逻辑复杂的场景。

pojo化没有,我可以忍,但没有设计service层,真心接受不了。

不是所有的场景都是数据库来数据库去的。

额....service层,你自己不实现么????你自己实现了Service就有,不实现就没有,这么简单的道理。。。
0
osc_1186658
osc_1186658

引用来自“JFinal”的评论

   用 jfinal 2.2 的 model 即可极速打完收工,jfinal 2.2 的 Model 集 Record 与传统 java bean 于一身,而且 getter setter 方法还是自动化生成的。

   在集群环境下,如果有些节点,没有数据库连接,只需要使用一行代码即可用上 Model :

ActiveRecordPlugin.useAsDataTransfer();
   在 jfinal 2.2 之下,相当于你的 Model 可以用于非数据库环境,极度方便,具体用法参见jfinal 手册,在此下载: http://www.jfinal.com

引用来自“天生蛋疼菊紧”的评论

感谢波总回答,我刚看了下Jfinal2.2的示例,文档也看了。有一些疑问

第一,目前我们用的版本是2.0,要用bean的特性,貌似差异很大

第二,record不一定对应一张表,如果是连接查询,一个record可以对应几个实体类,没法做通用转换

还是回到问题上来,record类型,这个record可能是单表中的某几个属性,也可能是多表中的属性组合,怎么把record变成pojo的强对象呢?


波总,没有ModelInjector的定义和调用,是上免那个Injector中的InjectorBean吗

JFinal
JFinal
源代码有下载的,去官网 http://www.jfinal.com
JFinal
JFinal
没错
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部