when ever I try to use lazy="true" ( as I want child should not load) , recevied exception org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.Folder.messages, no session or session was closed the entry in hbm like <set name="messages" table="folder_msg" lazy="true" cascade="none" sort="natural"> <key column="fld_id" /> <many-to-many class="Message" column="msg_id" /> </set>
Actually, that error message you got means that lazy="true" is completely working, it means that the collection is not loaded because it is lazy, and then you are trying to access the collection, which isn't loaded, outside of a session.
When you have a lazy collection, when you go to access the collection, Hibernate will want to go to the database to get the data, but since there is no Session (which holds the connection object) there is no way to access the database, so it throws that exception