论坛首页 Java企业应用论坛

银行主数据项目(MDM)的数据持久层,你选择hibernate还是ibatis(MyBatis)

浏览 49109 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-09  

一个银行的主数据项目.数据数据持久层的实现上一直有争议.不知道,大家有没有什么好的建议.

主数据项目的模型设计,不是像交易类型的模型偏向三范式的.
举一个简单的场景,提供几个过滤条件,根据过滤条件查询结果并展现.这个数据的收集和过滤可能要涉及十几张表.

hibernate对这个功能的实现要用十几张表,就要用到十几个对象.这样提供过滤,并要整理清楚对象间的逻辑关系.对程序员的要求相对要高些.
如果用ibatis的话,程序员在ETL人员的协助下,一条sql就能很快解决问题.难度下降了不少.

另一个角度,性能上.hibernate的常用优化是第三方的二级缓存技术.可是,十几张表的关联几百万的数据量,自动生成的sql会有或多或少的问题.不如直接sql来的直接,可以在数据库层面直接优化.sql优化,索引,表分区等.

想听听大家对这个问题的看法 
   发表时间:2011-06-09   最后修改:2012-01-10
这种大数据量的采集,我建议使用中间件来解决问题,ESB企业服务总线,我就是搞中间件的。
0 请登录后投票
   发表时间:2011-06-09  
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
0 请登录后投票
   发表时间:2011-06-09  
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。

同意,这样的场景用iBatis更合适
0 请登录后投票
   发表时间:2011-06-09   最后修改:2011-06-09
gafking 写道
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。

同意,这样的场景用iBatis更合适

小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。



Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。
0 请登录后投票
   发表时间:2011-06-09  
不使用ibatis使用存储过程才合理一些,特别是非现场系统
0 请登录后投票
   发表时间:2011-06-09  
抛出异常的爱 写道
不使用ibatis使用存储过程才合理一些,特别是非现场系统

同意,楼上的意见。大数据量最后直连
0 请登录后投票
   发表时间:2011-06-09  
george_space 写道
gafking 写道
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。

同意,这样的场景用iBatis更合适

小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。



Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。



看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

 

0 请登录后投票
   发表时间:2011-06-09  
luckyEveryOne 写道
抛出异常的爱 写道
不使用ibatis使用存储过程才合理一些,特别是非现场系统

同意,楼上的意见。大数据量最后直连

 

在主数据项目里,这部分工作都由 ETL 来承担了. 存储过程用的还是少

0 请登录后投票
   发表时间:2011-06-09  
getclass 写道
george_space 写道
gafking 写道
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。

同意,这样的场景用iBatis更合适

小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。



Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。



看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

 

jbpm 与 activiti 不是一码事

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics