Lazy initialization works only till the hibernate session is open. Once you close the hibernate session, lazy initialization cannot happen and ends up throwing LazyInitializationException. There are two solutions to this problem:
1) Keep the session open till you are sure you will not do any more lazy loading. This approach may not be useful for multi-tiered web applications as most applications will close the session in the model.
2) Use Hibernate.initialize(entity) to load you entity/relationships before closing your session. This is the usual approach that multi-tiered application use. In my application I use this approach. For details on inititalization please visit:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-fetching-initializationHope that helps.