Hibernate tips 2

Formula

(from : http://weishuwei.iteye.com/blog/68030)

1,formula ="()",里面的是sql语句,字段和表名都应该和数据库相应,而不是字段,若带有参数如cur.id= currencyID,这个currencyID才是对象的东东.
2,formula ="( sql )",这个括号不能少,不然会报错,我试了几次,没括号就报错,添上就没问题
3,操作字段一定要用别名

 

(from:http://www.cnblogs.com/iloveu/archive/2009/01/20/1378810.html)

* formula公式里的字段都是数据库里的字段名,除了查询条件参数是要和配置文件里的字段匹配。

 

(from:http://zhiweiv.iteye.com/blog/361525)

这下子对于formula里的sql语句为什么必须放在括号里应该明白了,因为formula里面的值会作为一条sql语句select和from之间的内容,我们把sql语句放到括号里实际上就是做为一条子查询执行!!! 例如最开始示例的的rank对应的sql语句就应如下样子

 

dynamic-update

- when true, dynamic generate sql, if any changes for the property, it will appear in update sql, otherwise, wont be included.

 

dynamic-insert

- when true, insert will dynamic generate sql, if the property is NOT null, it will be included in SQL, otherwise, wont.

 

lazy-loading

1. If no record in database, still lazy-load uninitialized object.

2. only throw exception when call method of the proxy object

3. when access ID: getID(). wont trigger any database query

 

Hibernate performance

1. lazy-loading

2. batch-size: the size of elements to retrieve each time

3. one-to-one & many-to-one, better use outer-join to fetch data, it will reduce query times.

4. max-fetch-depth: outer join tables depths...

 

Join Query

1. hibernate configure: outer-join="true", sql will be left outer join

2. HQL e.g. Person has items, "from Person p inner join p.items" No "on" like the one in SQL

3. SQL, we have "select xxx inner join xxx ON...."

4. HQL join will return a list of array which contains joined objects. e.g. "from customer c left outer join c.order"; if we only want customer, we can use "Select c from customer c left outer join c.order"

5. HQL join fetch will get first object and load second fetch object as reference

6. inner-join & outer-join , result is all arrays which contains joined objects

 

HQL & Criteria

* hql will check whether passed object has map or not

* criteria will load all implementor of given class.

* check field null using "is null", not "=null" which wont get any result (might has grammar error)

 

Implict Join applys to "Many-to-one" and "one-to-one" relationship. Not "One-to-Many"

 

 left/right (outer) join : outer can be omited

 

Hibernate configure

use_query_cache=true, is not enought, need set Query.setCachable("true")

 

Query or Criteria result

1. If more than one result return, need use setMaxResult() to restrict output and then use uniqueResult

Criterial #Expression #Order

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件已上传到百度网盘,附件中是下载地址。真正免积分免费完整版,绝不出现仅下载到部分章节,书中广 告页要求QQ联系支付宝购买完整版的流氓行为! 欢迎免积分下载更多本人独有网上难寻觅的 高清IT电子书:http://download.csdn.net/user/sinophp123 人无我有,人有我优,人优我廉!我的版本是全网最清晰的独家制作版本,还不要资源分。 同样一本书,下我的就可以了! 本人上传资料的原则: (1)如果CSDN和网上其他地方已随处可见高清下载,本人不再上传。 (2)如果网上已有我还上传,那么肯定是经重新制作,如不再缺页,清晰度更高,或者加上书签。 (3)每本书都经过逐页纯手工精心处理,包括清晰度的增强,水印的去除。当然最重要的,是尽量保证有书 签方便您浏览。 (4)如果是中译版,文件名前半部分是英文原版书名,后面是中译版书名。 如:“Implementing.Responsive.Design-响应式Web设计实践”。书名经反复校对绝无一字错漏。 (5)每本pdf书默认都是有书签的。来源不限“某星”网站,还有各大网络书店和出版社官网的页码信息。 凡无书签的pdf文件名均含“_no.bookmark”字样,如“HTML5程序开发范例宝典_no.bookmark”。请不要再 浪费时间去寻找书签,肯定没有,网上别人提供的下载版本也绝对不会有(除非您是出版社内部人员!), 没有人会浪费自己时间逐页输入章节页码来费时费力免费给您制作。 (6)只提供中文书籍,您不用担心下载的是英文原版。 (7)只提供完整版,绝不上传只有部分章节的所谓“迷你书”,“试读版”。 (8)书中绝不含广告页和水印LOGO。 Hibernate-A.Developer's.Notebook—Hibernate程序高手秘笈 [美] james elliott(著) | o'reilly taiwan公司编译(译) | 东南大学出版社 | 9787564106379 |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值