2016-12-06 138 views
0

我有一個股票和StockRecords類與一對多的關係。休眠和java堆空間錯誤

在Stock.hbm.xml,我有這樣的

<bag name="stockRecords" table="stockRecords" inverse="true" lazy="true" 
    fetch="select"> 
<key> 
    <column name="stock_Records" not-null="true" /> 
</key> 
    <one-to-many class="com.my.model.objects.StockRecords" /> 
</bag> 

我在一個時間accesing一個股票定義的集合。這裏是

Stockrecords具有一個日提交的(字符串類型),這將平均包含

在它500000個字符在StockRecords.hbm.xml

<property name="summary" type="string" lazy="true" > 
     <column name="summary" /> 
    </property> 

雖然我accesing的一個問題基於ID的股票實體,我試圖從該股票的所有股票記錄中建立一個所有彙總字段的字符串。我得到java堆空間錯誤,她把我的jvm設置設置爲512m。這是休眠或Java的東西?

冬眠4.XX 的Java 1.7

+0

可能你需要改變512米到1024米。這可能有幫助。 –

回答

1

確保你只要你不需要它了從session.evict(obj) Hibernate的背景下清除實體。否則所有這些實體都會很快填滿你的記憶。

如果攻擊對您的算法不是問題,您也可以用session.clear()清除整個上下文。

如果這還不夠,您應該考慮增加Java堆大小。