关于hibernate中lazy=true

    
浆糊 03-09-03

目前还不是很清楚lazy=true在hibernate中是如何处理从而达到提高效率的,是在get的时候去进行数据库查询,还是说别的手段?它自己实现的Collection的作用是什么?

如果一个对象通过webservice传递到了客户端,那么他在getXxxs()去一个集合的时候有没有什么问题?

bruce
2003-09-03 11:11

lazy=true, Hibernate在底层实现了一个Proxy类,如果需要用到类的时候再装入。这跟一般的lazy load是一样的,在分布式应用中,如果用到Hibernate自已的collection 也同时用到lazy=true, 则一定要注意,这是不可能再实现lazy load的, 所以一定要在传给client端之前,全部装载所有要用到类,再传送。 不过这也要根据情况,如果确信client端并不可能用到所用的类,则不用全部装载。希望没有越说越糊涂。另外lazy=true且有继承关系的时候,要注意转型的问题。

testu
2003-09-03 11:46

什么样的类,才会“如果需要用到类的时候再装入”?

能举个小例子吗说明吗?

谢谢

bruce
2003-09-03 12:07

例如 一个类A中“可能“ ”在将来”才要用到另一个类B中的方法,在装入类A时,不一定要装入类B, 当类A需要类B时,再把类B装入。

具体的东西可以看看下面的连接:

http://www.hibernate.org/hib_docs/reference/html_single/#collections-s1-7

bruce
2003-09-03 12:08

例如 一个类A中“可能“ ”在将来”才要用到另一个类B中的方法,在装入类A时,不一定要装入类B, 当类A需要类B时,再把类B装入。

具体的东西可以看看下面的连接:

http://www.hibernate.org/hib_docs/reference/html_single/#collections-s1-7

2Go 1 2 下一页