精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-09
一个银行的主数据项目.数据数据持久层的实现上一直有争议.不知道,大家有没有什么好的建议. 主数据项目的模型设计,不是像交易类型的模型偏向三范式的. 举一个简单的场景,提供几个过滤条件,根据过滤条件查询结果并展现.这个数据的收集和过滤可能要涉及十几张表. hibernate对这个功能的实现要用十几张表,就要用到十几个对象.这样提供过滤,并要整理清楚对象间的逻辑关系.对程序员的要求相对要高些. 如果用ibatis的话,程序员在ETL人员的协助下,一条sql就能很快解决问题.难度下降了不少. 另一个角度,性能上.hibernate的常用优化是第三方的二级缓存技术.可是,十几张表的关联几百万的数据量,自动生成的sql会有或多或少的问题.不如直接sql来的直接,可以在数据库层面直接优化.sql优化,索引,表分区等. 想听听大家对这个问题的看法 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-09
最后修改:2012-01-10
这种大数据量的采集,我建议使用中间件来解决问题,ESB企业服务总线,我就是搞中间件的。
|
|
返回顶楼 | |
发表时间:2011-06-09
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
|
|
返回顶楼 | |
发表时间:2011-06-09
squll369 写道 不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
同意,这样的场景用iBatis更合适 |
|
返回顶楼 | |
发表时间:2011-06-09
最后修改:2011-06-09
gafking 写道 squll369 写道 不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
同意,这样的场景用iBatis更合适 小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。 Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。 |
|
返回顶楼 | |
发表时间:2011-06-09
不使用ibatis使用存储过程才合理一些,特别是非现场系统
|
|
返回顶楼 | |
发表时间:2011-06-09
抛出异常的爱 写道 不使用ibatis使用存储过程才合理一些,特别是非现场系统 同意,楼上的意见。大数据量最后直连 |
|
返回顶楼 | |
发表时间:2011-06-09
george_space 写道
gafking 写道
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
同意,这样的场景用iBatis更合适 小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。 Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。
|
|
返回顶楼 | |
发表时间:2011-06-09
luckyEveryOne 写道
抛出异常的爱 写道
不使用ibatis使用存储过程才合理一些,特别是非现场系统
同意,楼上的意见。大数据量最后直连
在主数据项目里,这部分工作都由 ETL 来承担了. 存储过程用的还是少 |
|
返回顶楼 | |
发表时间:2011-06-09
getclass 写道
george_space 写道
gafking 写道
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。
同意,这样的场景用iBatis更合适 小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。 Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。
jbpm 与 activiti 不是一码事 |
|
返回顶楼 | |