【前言】

在ORM框架上我们项目采用的框架是EclipseLink;在使用EclipseLink中遇到一个问题,在底层封装往上返回的时候将Object类型映射成Map,而上层需要实体这样会出问题;下面为大家分享一下针对这个问题我做的一个实验;

【分析过程】

         一、思考过程:

1、底层用的EclipseLink,Object经过映射返回来变为Map;用Map的优缺点:

(1)优点:实现简单;

(2)缺点:交互不明确,需要调用方做相应的处理;

2、底层用的EclipseLink,Object经过映射返回来变为实体;用实体的优缺点:

(1)优点:可以统一处理控制,调用方无需做额外的处理;

(2)缺点:实现复杂,需要考虑所有的情况;

3、我们如何选择?

考虑到我们项目特点(项目比较大,调用底层地方比较多),利用转换成实体的方法利大于弊;于是我们对底层方法进行了优化,使其以实体的形式进行返回;这样使得底层方法更加人性化,业务开发人员的效率大大提高。

         二、实现过程:

由于相关实现涉及到公司的机密代码,不便透露;大家有兴趣可以自己去写代码进行尝试,基础代码非常简单;复杂的地方在于需要对自己的项目进行分析,并测试底层方法对于任何情况都适用;

【总结】

1、实践出真知;

2、针对一个问题的思路十分重要,需要我们不断进行思考与总结。

智能一代云平台(九):EclipseLink返回Object转为实体的分析相关推荐

  1. 智能一代云平台(二十九):通用mapper的改造

    [前言] 最近研究一下Mybatis的通用mapper,然后对其进行了一些改造以适合我们的系统,接下来为大家分享一下我的研究思路以及研究成果. [研究之路]      一.ORM框架选型: 1.我们最 ...

  2. 智能一代云平台(三十):逆向工程生成mybatis

    [前言] 最近在研究mybatis逆向工程的一些东西:通过研究Mybatis+通用mapper.逆向工程生成mybatis.Hibernate+mybatis:最终综合这些优点实现了一个我们自己的逆向 ...

  3. 智能一代云平台(三十一):mybatis加入分页

    [前言] 在<智能一代云平台(三十):逆向工程生成mybatis>已经将mybatis的逆向工程搞定了:但是美中不足的是mybatis的分页查询:接下来一起来探索一下分页查询. [分页查询 ...

  4. 智能一代云平台(五):移动开发之环境搭建

    [前言] 谣传最近IT领域异常火热,而IT中的移动端领域更是如日中天. 做为一名程序猿的我,也不甘Out:于是雄心勃勃参加一个智能一代云平台移动端项目开发:之前有人做了第一版,现在我们需要重构. [基 ...

  5. 智能一代云平台(二十二):多租户方案比较Hibernate、EclipseLink、Mybatis+Mycat

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 我们做的高校云平台中需要用多租户这种技术,目录了解到的有三种技术可以实现:符合JPA规 ...

  6. 智能一代云平台(十九):选修课---类似秒杀的高并发业务

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 选课,考试,评教这三个功能是我们的云平台中的重头戏:并发高是这三个功能的一个共同特点, ...

  7. 智能一代云平台(三十九):不同服务之间数据调用的一些思考

    [前言] 我们采用的是Dubbo框架,服务之间的调用是通过dubbo来管理:在开发业务的时候针对于服务间的调用产生了些疑惑:自己查找一些资料并进行思考与比较: [不同服务之间] 1.不同服务之间组装数 ...

  8. 智能一代云平台(二十三):Mycat高可用的探索

    [前言] 在智能云平台的上篇博文 <智能云平台(二十二):多租户方案比较Hibernate.EclipseLink.Mybatis+Mycat>中讲解了实 现多租户的一种方案是用MySql ...

  9. 智能一代云平台(三十三):log4j日志研究

    [前言] 日志对于一个系统的来说是必不可少,它可以让人们知道,系统当前运行的状况:最近对日志进行了一些实践,以下是自己在这个过程中收获的一些东西. [一些有趣的实验]          一.mybat ...

最新文章

  1. 基于大规模结构化病例数据的新型冠状病毒传播特征和感染人群分析
  2. Qt 【widget如何铺满窗口】
  3. delphi——用线程创建一个窗体笔记
  4. Github|类别不平衡学习资源(下)
  5. tmadmin: command not found和tmadmin: error while loading shared libraries: libgpnet.so
  6. charcoal editor installation
  7. Exchange2007服务器角色
  8. tensorflow 中的 array_ops
  9. 触屏touch事件记录
  10. spring cloud微服务(二)euraka服务消费者
  11. CMPSS 涡扇发动机模型
  12. 恒凯USB数据采集卡在国产麒麟操作系统下的应用(二)Python环境设置及数据采集实验
  13. 语义漂移_当概念漂移是语义漂移时
  14. SQL Server numeric数据类型
  15. 开源软件 AnimeGANv2:一键生成宫崎骏动漫风格照
  16. 一些RJS资源和演示入门教程
  17. plc如何进行远程监控?
  18. Unity XR Interaction Toolkit研究
  19. HBuilder X下载安装,运行微信小程序教程(官网)
  20. 2017免费最新版YY注册机

热门文章

  1. CSDN 创始人蒋涛:AI 定义的开发者时代
  2. 麦肯锡用 160 页报告告诉我们:13 年后 8 亿人的饭碗会被机器人抢了
  3. j - cyk追楠神系列一_「清单」小米烧水杯太萌了,喜茶桂花冻太香了,优衣库新系列太美了!...
  4. python long函数_python函数
  5. 将csv文件导入python_如何将csv文件导入数据数组?
  6. android飞屏app下载地址,飞屏下载安卓最新版_手机app官方版免费安装下载_豌豆荚...
  7. 250分b区计算机专硕,2021兰州大学研究生复试分数线
  8. es6html模板,js 字符串模板 ES6
  9. c语言自动按次序创建文件,读取文件建立顺序表实现增,删,查,取(C语言)...
  10. indexOf与includes的区别