作者cyclone350 (老子我最神)
看板java
标题Re: [问题] hibernate 新手问题
时间Sat Mar 30 00:16:23 2013
大家好,在 abola921 回文那天我就有看到了,
不过我最近有看一点sql的书
想为我之前的提问做个完整的推论,在此和大家分享
当然其中一定不会是 100% 正确的
如果有错请欢迎指证...
-------------------------------------------------------
SQL 语法本身是为了从 data 饰选出资料
例如 select * from mobile where phone_name = 'iphone'
资料库会选好资料後,再进行 filter 的动作 !
而 HQL 也是如此
Hibernate 是一个 ORM 模型,他是完整对应物件与资料库data的实体关系
所以当 DBA 在资料库下 select * from mobile where rownum <= 5
那麽他在 Hibernate 底下也应该写出相应的 HQL
反倒若是使用 Hibernate 的一些 function 做 filter 相当奇怪
因为你基本上不会去修改资料库的参数而达到 rownum <= 5 的要求
对於一个 ORM 模型来说,他所要求的是能跟资料库对应,而不是加一堆 Filter
这样 HQL 跟本身的 function 就冲突了
然後 lazy 的设置,因为他是 ORM,不是 SQL 产生器,当你 get 时
Hibernate 要让表跟表完整对应 !!
若有 rownum 的需求,应该是下 HQL 而不是启动整个表格...
所以若资料库设计太差,那麽 hibernate 效能就会变差
就像资料库效能会变差一样 !!
以上,浅见 !!
欢迎讨论
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 49.159.136.214
※ 编辑: cyclone350 来自: 49.159.136.214 (03/30 00:17)