如何发挥Hibernate的lazy检索功能的作用?
由于在Hibernate下有detached对象可以部分替代DTO,我通过DAO对象返回相应的detached object,但是这些detached对象只能在相应的Session close之后才可以作为detached object返回。这样就出现了矛盾,因为session close之后,lazy功能就不能起作用了。因为调用DAO的客户是否真的要访问Customer关联的Orders对象,DAO本身并不知道,如果在DAO相关代码中使用的lazy功能,而客户端却访问了相关的orders对象,这会抛出异常,因为相应的orders还没有初始化。如果在DAO中显式初始化orders则,lazy检索的意义何在?难道说对每一个DAO里面的find方法都定义多个版本(包括显式初始化orders和使用lazy检索orders的版本),然后客户端只能通过调用不同的版本?
以上是我对Hibernate的lazy检索功能的一点疑问,不知道是我的理解错误,还是使用上方法不当。请各位指点,谢谢!