论坛首页 Java企业应用论坛

谈谈Hibernate令人不爽的地方

浏览 95639 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-26  
together 写道
至少在中小规模的应用上,hibernate的性能还是非常不错的。至于某些特殊场合下,诸如需要在列表里显示某个部门的总员工数的,特殊处理一下也可以解决。

真正体会到hb带来的好处的,就是跨数据库!对于产品来讲,跨数据库是必须的,以针对不同目标客户选用不同的数据库。我现在就可以说,俺们的产品部署在任何HB支持的数据库上都没问题。

这种快感是那些“一个项目就是一个公司”模式下搞开发的同僚们无法体会的。
0 请登录后投票
   发表时间:2006-12-28  
我感觉现在用这些的就是做做数据的管理平台,甚至是普通的所谓B/S系统的网站,论坛。就好像是把VB从C/S转到B/S,任何一个智力超过10的人都可以做。你们公司接单,做产品,然后收钱,这类公司最需要的就是快速,简单但又要让用户看起来很高档的东西。
0 请登录后投票
   发表时间:2006-12-28  
ken1984 写道
我感觉现在用这些的就是做做数据的管理平台,甚至是普通的所谓B/S系统的网站,论坛。就好像是把VB从C/S转到B/S,任何一个智力超过10的人都可以做。你们公司接单,做产品,然后收钱,这类公司最需要的就是快速,简单但又要让用户看起来很高档的东西。

很明显,你的感觉错了……
采用Hibernate和Spring之类开源项目的“关键应用”已经为数不少了,许多非常复杂的应用程序也都运用到了它们。
0 请登录后投票
   发表时间:2007-06-01  
我以前参与的一个项目,hibernate使用不当的话会有很严重的性能问题。所以在使用的时候还是应该谨慎啊。
0 请登录后投票
   发表时间:2007-06-01  
wubg 写道
做报表时,用Hibernate生成一个复杂的SQL语句,真是煞费心思,左连右连痛苦,后面就只能直接用JDBC来实现,用hibernate实现对象add,update,delete是容易,但是,复杂的业务,就没法容易实现了

在使用hibernate的时候不要总是想着100%的hibernate,不要为了用hibernate而是使用hibernate,要有选择的使用JDBC,这才是理智的………………
0 请登录后投票
   发表时间:2007-06-02  
Allen 写道
ken1984 写道
我感觉现在用这些的就是做做数据的管理平台,甚至是普通的所谓B/S系统的网站,论坛。就好像是把VB从C/S转到B/S,任何一个智力超过10的人都可以做。你们公司接单,做产品,然后收钱,这类公司最需要的就是快速,简单但又要让用户看起来很高档的东西。

很明显,你的感觉错了……
采用Hibernate和Spring之类开源项目的“关键应用”已经为数不少了,许多非常复杂的应用程序也都运用到了它们。

有哪一些你口中的<關鍵應用>呢?
可以舉幾個出來聽聽好嗎.
我只認為, 多狗餘的東西就是hibernate.
沒工作過的人才會想hibernate 能怎樣, 實際上並不能怎樣.
業務需求整天都在變, 一天變三次是件平常的事. 加field, 減field, 改field attribute 更可能
是不定期發生. 改這些東西, jdbc 只要改sql 和db, hibernate 呢?
跨平台的sql, 要寫出來有這麼難嗎? 還是你還在用沒subquery 的mysql?
0 请登录后投票
   发表时间:2007-07-25  
我怎么觉得Hibernate用起来挺爽的。要求太低?农民啊。
0 请登录后投票
   发表时间:2007-07-31  
不能延迟加载,一次性加载全部配置费时,哪个业务项目没有100个以上的表?单元测试时能烦死人。

由于人懒和工作忙,我也就改了hb2,没改hb3,麻烦。

其他的没了。
0 请登录后投票
   发表时间:2007-07-31  
downpour 写道
Hibernate在查询时,面对很多映射有时候显得很苍白。

例如有个业务场景,Department和Employee是一对多关系。现在我对Department进行分页查询,要求在显示的页面上同时显示每个Department中Employee的数量。这是一个很简单的业务场景,但是想象一下如何用hibernate进行映射?

首先否定一种做法:hql:FROM Department department。然后针对每个department,去做department.getEmployees().size()。这样不仅会发送n+1条SQL,而且性能太低。

我们肯定希望采用一句HQL解决问题,但是此时问题来了,当你试图做SELECT department, count(employee.id) FROM .....这样的HQL时,在Java端,发现没有一个合适的对象可以映射。

从OO的角度,其实可以在Department这个类中加一个employeeSize来表示这种业务场景。但是好像Hibernate无法去做类似的映射。而iBatis在这个方面却灵活的多。

我们项目中也有这个问题,不过我们是通过那个 createFilter来解决的
0 请登录后投票
   发表时间:2007-07-31  
myyate 写道
downpour 写道
Hibernate在查询时,面对很多映射有时候显得很苍白。

例如有个业务场景,Department和Employee是一对多关系。现在我对Department进行分页查询,要求在显示的页面上同时显示每个Department中Employee的数量。这是一个很简单的业务场景,但是想象一下如何用hibernate进行映射?

首先否定一种做法:hql:FROM Department department。然后针对每个department,去做department.getEmployees().size()。这样不仅会发送n+1条SQL,而且性能太低。

我们肯定希望采用一句HQL解决问题,但是此时问题来了,当你试图做SELECT department, count(employee.id) FROM .....这样的HQL时,在Java端,发现没有一个合适的对象可以映射。

从OO的角度,其实可以在Department这个类中加一个employeeSize来表示这种业务场景。但是好像Hibernate无法去做类似的映射。而iBatis在这个方面却灵活的多。

我们项目中也有这个问题,不过我们是通过那个 createFilter来解决的

————————————————————————————————————————
createFilter?可以具体谈谈?
0 请登录后投票
论坛首页 Java企业应用版

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