论坛首页 Java企业应用论坛

hibernate在新项目上应用的弊端

浏览 42033 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2011-04-25   最后修改:2011-04-29
首先,我并不是一个hibernate开发的推崇者,也不精通hibernate,只是在某几个项目上用到了hibernate,下面是我的感受:
1、lazy加载,经常带来问题
2、级联保存常带来问题,所以我开发是都不用级联保存
3、主键的native要求主键使用number类型,给设计带来麻烦
4、很多人开发是不设计表结构,而是用hibernate来生产数据库,对维护带来很多影响
5、处理复杂SQL,还是需要用SQL而不能用HQL,导致语言混杂,增加维护成本
6、大数据量时,很容易出现问题
7、不适合新人使用,项目中往往有工作经验较低的人,使用hibernate往往容易出错

我对持久层框架要求很简单:
1、自动POJO到数据,或者数据库到POJO
2、适度缓存

如果不是项目要求,我更倾向选择ibatis。
   发表时间:2011-04-25  
newslxw 写道


7、不适合新人使用,项目中往往有工作经验较低的人,使用hibernate往往容易出错

0 请登录后投票
   发表时间:2011-04-25  
楼主最好举例说明下,那样更有说服力,否则,看上去仅仅都是些抱怨。。
0 请登录后投票
   发表时间:2011-04-25  
newslxw 写道

首先,我并不是一个hibernate开发的推崇者,也不精通hibernate,只是在某几个项目上用到了hibernate,下面是我的感受:
1、lazy加载,经常带来问题
2、级联保存常带来问题,所以我开发是都不用级联保存
3、主键的native要求主键使用number类型,给设计带来麻烦
4、很多人开发是不设计表结构,而是用hibernate来生产数据库,对维护带来很多影响
5、处理复杂SQL,还是需要用SQL而不能用HQL,导致语言混杂,增加维护成本
6、大数据量时,很容易出现问题
7、不适合新人使用,项目中往往有工作经验较低的人,使用hibernate往往容易出错

我对持久层框架要求很简单:
1、自动POJO到数据,或者数据库到POJO
2、适度缓存

如果不是项目要求,我更倾向选择ibatis。


1,没说要强制lazy
2,级联保存不代表数据库就是级联的.而且请举例问题?
3,我怎么不知道主键强制使用number,那你们是用什么?
4,正向工程和逆向工程是你自己选择的
5,你来句SQL,只要你表设计是合理的我就能用HQL或者QBC帮你写出来.写不出来十有八九是数据表设计有问题
6,大量是多少?我们查询40w条数据也没发现问题么?难道不用分页?
7,这个我认同

综上所述,你的感受大多数是因为你也不熟悉Hibernate.我不反对MyBatis,但是MyBatis还不如DBUtils和SpringJDBC Template
3 请登录后投票
   发表时间:2011-04-25  
hibernate本身没有弊端.是因为用的不好才出现了弊端
0 请登录后投票
   发表时间:2011-04-25  
大哥 看你说这个 这应该是你自己的原因
0 请登录后投票
   发表时间:2011-04-25  
KimShen 写道

5,你来句SQL,只要你表设计是合理的我就能用HQL或者QBC帮你写出来.写不出来十有八九是数据表设计有问题

综上所述,你的感受大多数是因为你也不熟悉Hibernate.我不反对MyBatis,但是MyBatis还不如DBUtils和SpringJDBC Template

两个都不完全认同,我来举个例子:
t_student(id,name); -- 学生表
t_course(id,name); -- 课程表
t_score(id,student_id,course_id,score_value); -- 成绩表


给出SQL或HQL或QBC求出每门课前十名的学生记录?
0 请登录后投票
   发表时间:2011-04-25   最后修改:2011-04-25
有这么一句话:没有不好的景色只有不好的摄影师。楼主武艺不精,全赖刀上了。hibernate不是刚出来的东西。
0 请登录后投票
   发表时间:2011-04-25  
月经贴,鉴定完毕。
ibatis比较适合LZ。
0 请登录后投票
   发表时间:2011-04-25  
用hql做复杂sql查询还是比较困难的
1 请登录后投票
论坛首页 Java企业应用版

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