Lazy属性做为Hibernate的提升性能的一个重要参数...想必已被大家所熟知...虽然Hibernate2.1.*里面还不支持对于 property的延迟加载...但是正确并且灵活的设置XXX-to-many中的Lazy属性, 可以给程序性能带来很大提高
请先看看下面这段配置
< set name = " moderators " lazy = " true " inverse = " false " outer - join = " true " cascade = " all " order - by = " creationDate asc " >
< key column = " forumid " />
< one - to - many class = " ModeratorPO " />
</ set >
正 如我一厢情愿的,此段代码在我的程序中使用了很长时间,我也一度自以为是的以为它为我实现了moderators集合的延迟加载,可是当我仔细得阅读了 Hibernate为我的getObject()方法输出得SQL时...我发现我取得的是一个很大的SQL列表,竟有十余条之多
难道lazy设置失效了么?反复的调试,查看文档,google........
最终在分析输出的SQL后发现了“罪魁祸首”:outer-join
其 实原因很简单,outer-join即外连接抓取,Hibernate将分开的N条SQL语句通过table_nameA left join table_nameB on(具体语法由实际的DBMS决定)来合并成一条SQL提交给数据库,并返回PO对象以及Collection的PO列表,这本也是Hibernate 提升性能减少数据库访问的一个优化措施..但是在获取Collection时,采用outer-join就导致了collection与PO对象本身同时 提交到查询,也就变相的失去了延迟加载的效果
经多次测试 当outer-join=true时,你的lazy属性无论设置为任何值,Collection都会初始加载
(one-to-one没有lazy 因此不必考虑^_^)
请大家谨慎设置outer-join=true
分享到:
相关推荐
2022/3/14 4.8 数据拼接-2 数据拼接经常用于将不同的dataframe (series)拼接成一个dataframe ,可以根据某个轴向进行拼接。...当两个表索引不完全一样时,可以使用join 参数选择是内连接inner还是外连接outer。在内
AbsolutePosition 不支持 不支持 可读写 可读写 ActiveConnection 可读写 可读写 可读写 可读写 BOF 只读 只读 只读 只读 Bookmark 不支持 不支持 可读写 可读写 CacheSize 可读写 可读写 可读写 可读写 ...
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True) 参数含义 objs:Series,DataFrame或Panel对象的序列或...
Having useful indexes speeds up finding individual rows in a table, as well as finding the matching rows needed to join two tables. What You Will Learn After completing this lesson, you will be able ...
说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...
通常我们并不对视图的数据做修改操作,因为视图是一张虚拟的表,它并不存储实际数据。如果想让视图不被修改,可以用with check option来完成限制。 create or replace view view_temp as select * from temp with ...
sqlfmt Description The sqlfmt formats PostgreSQL statements in .go files into a consistent style. Example ...from xxx as xxx join xxx on xxx = xxx join xxx as xxx on xxx = xxx left outer joi
## set the maximum depth of the outer join fetch tree hibernate.max_fetch_depth 1 ## set the default batch size for batch fetching #hibernate.default_batch_fetch_size 8 ## rollback generated ...
A) may invite trouble B) may not come true C) will fool the public D) do more harm than good 3. Professor Bruce Lahn of the University of Chicago predicts that____. A) humans won’t have to donate ...
3.3.2 设置当前模式语句 ..........................................................................................65 3.3.3 模式删除语句 ....................................................................