答复: 大型Java多用户商城系统设计开发的心得和困难
我平常做金融类产品居多,深知这个东西的害处。onecan说的对,Hibernate用来做简单操作确实省时省力,使用通用Dao的话那是非常痛快的。但做到后期,分表分库,集群,不同类型数据库混用阶段,Hibernate是重构的第一大障碍。而且这个阶段还涉及到人员的素质问题,Hibernate这东西用好不易,开发人员水平参差不齐,乱写乱用,看似省事,其实隐患很大,此时进行培训改进又遇到各种各样问题导致无法顺利进行。我多次遇到使用Hibernate操作数据库资金管理类库表导致数据不一致记错账的事情,管钱的记错账那都是一级生产事故啊,教训极惨痛。
onecan做的业务和我的领域比较重合,正好我也负责过电子商务网站的后台系统,如果你还不理解为什么要避免使用Hibernate,咱们可以慢慢聊,都是花大钱买来的经验教训,大家就不要再重蹈覆辙了。
我也参与过金融类的大型项目开发,整个项目架构是spring+hibernate,外加jdbc,这个项目不可谓小,在eclipse中project都达到接近100个,100号人在维护和开发,hibernate那层是有专门的专家去评审的,你可以提出申请需要增加一个表,但是要得到DBA组人员的审核。
如果用好了,对开发上也能节省不少时间,用不好就是自伤了。另外一个以前我是比较崇尚一个hibernate的超级DAO的,如果项目简单的话连DAO层都省掉了,不过项目大了之后就不好维护了,大家都乱调用,没有章节。evanzzy,我在hibernate上也没有深究,所以才会每一个表就一个Dao,一个service,一个controoler,这样会比较清晰。service层是所有逻辑的入口点。
对于你在hibernate上遇到的问题,也可以拿出来探讨一下,共同进步。