<div>Hi all,</div>
<div>I am using Hibernate for ORM.<br>Right now i am&nbsp;monitoring my application using &nbsp;JProfiler.<br>Here, i run my application and monitoring instances which are not garbage collected.<br>In one flow of my application,&nbsp;i have found that hibernate is instantiating objects on the basis of available records in<br>
corrosponding table. </div>
<div>&nbsp;</div>
<div>For example,&nbsp;I have tried to load <strong>BaseListing class</strong> which is child of <strong>UserDtls</strong>&nbsp;and when i load </div>
<div>BaseListing like as given below (DAO layer code snippet).</div>
<div>&nbsp;</div>
<div><strong><font size="2">baseListing = (BaseListing)getHibernateTemplate().load(BaseListing.</font></strong></div><font size="2"><strong><font color="#7f0055">class</font>, listingId);</strong> </font>
<div>&nbsp;</div>
<div>Here, it loads <strong>baselisting</strong> with all its containing objects including UserDtls where returned UserDtls object is one </div>
<div>but in jprofiler it shows 32 UserDtls allocations (Instance Allocations, <strong>here UserDtls table has 32 records</strong>) whereas </div>
<div>in baseListing it has loaded only&nbsp;one instance<strong>.</strong></div>
<div><strong></strong>&nbsp;</div>
<div>So JProfiler shows me this 32 as a non-GCed objects. </div>
<div>&nbsp;</div>
<div>Can anybody tell me that why hibernate is loading (creating instances of) UserDtls on the basis of available records into the UserDtls</div>
<div>even in baseListing it is assigning one instance of UserDtls.</div>
<div>&nbsp;</div>
<div>(The mapping files are as given below)<br>i.e<br>I have two classes BaseListing and UserDtls.<br>Following is a configuration snippet of both<br><strong>BaseListing.hbm.xml</strong><br>&lt;class name=&quot;test.BaseListing&quot; table=&quot;base_listing&quot; lazy=&quot;false&quot;&gt;<br>
.........................<br>&lt;many-to-one name=&quot;userDtls&quot; class=&quot;test.UserDtls&quot; lazy=&quot;false&quot;&gt;<br>&lt;column name=&quot;USER_ID&quot; /&gt;<br>&lt;/many-to-one<br>....................<span></span><span></span> <br>
&lt;/class&gt;<br>&lt;/hibernate-mapping&gt;</div>
<div><br><strong>UserDtls.hbm.xml</strong><br><br>&lt;class name=&quot;test.UserDtls&quot; table=&quot;user_dtls&quot; lazy=&quot;false&quot; &gt;</div>
<div>...........................</div>
<div>&lt;set name=&quot;baseListings&quot; inverse=&quot;true&quot; fetch=&quot;select&quot;&gt;<br>&lt;key&gt;<br>&lt;column name=&quot;USER_ID&quot; /&gt;<br>&lt;/key&gt;<br>&lt;one-to-many class=&quot;test.BaseListing&quot; /&gt;<br>
&lt;/set&lt;key&gt;<br>....................<br>&lt;/class&gt;<br>&lt;/hibernate-mapping&gt;<br>&nbsp;</div>
<div>Here,can any body tell me how can i make hibernate to load only required 1 instance</div>
<div>&nbsp;rather than unnecessary 32 instances of UserDtls.</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div>Manish</div><span></span>