If you're using Spring you can use the OpenSessionInView(Interceptor|Filter). It's an easy fix for lazy initialization exceptions because it aligns the session boundaries with the request boundaries. I generally don't like this approach because it gets rid of the errors by doing additional queries against the database for data that is proxied.
My preference in a case like yours is to use transfer objects that have the specific fields you're interested in for each call. There is no point to sending data back and forth that isn't necessary, or worse, sending data that misrepresents the actual state of your persistence layer.
I'd actually go one step further and leave your session boundaries as they are, and make sure that your DAO methods are returning transfer objects and not entities. People will often argue that entities are just POJOs, and this is just more work. But the reality is, as your question illustrates, an attempt to treat the entity as a POJO can result in implicit data access, which belongs in a layer dedicated to data access.