首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Hibernate 性能优化_一

2012-12-18 
Hibernate 性能优化_1大概如此:不一定说在每个项目中都合适?1、使用session.clear(),虽然说java有垃圾回收

Hibernate 性能优化_1

大概如此:不一定说在每个项目中都合适

?

1、使用session.clear(),虽然说java有垃圾回收机制,但在实际应用中,还是存在着很多内存溢出

比如,开了N多文件而没关,比如开了地址池而没清,比如分页读了N多页而没有清内存

?

2、1+N问题

对于ManyToOne,如果设为FetchType=Eager,则会产生1+N的问题(当然,OneToMany一般都是Lazy)

1+N问题为:如果我取10条记录,那么Hibernate就会再去找这10条记录对应的"One"的对象

?

解决办法,3种:

a)?? 在ManyToOne处设为Lazy后,暂时不发,啥时要用啥时就发SQL去找这个One对象

b)?? 在One的对象上,设 @BatchSize(size=5),这样,查10条记录时,虽然Hibernate会再去查这10条记录

????? 对应的"One",但会分10/5=2次去取,就是说,一次取5条记录,共发2条SQL

c)?? 改HQL, 原来的" FROM 对象 " 改为 " FROM A a LEFT JOIN fetch a.b c? " 这里c为a.b的别名

?

?

?

?

热点排行